web-dev-qa-db-ja.com

javascriptを介してasp.net検証コントロールをリセットしますか?

JavaScriptを介してasp.net検証コントロールをリセットするにはどうすればよいですか?現在のコードサンプルはエラーメッセージテキストをクリアしますが、次のフォーム送信のために検証コントロールをリセットしません。

var cv= document.getElementById("<%= MyValidationContorl.ClientID %>");
cv.innerHTML = '';

更新:

これがフォームの完全なコードサンプルです。別のフォーム送信で検証コントロールを起動できないようです。

function ClearData() {
    var cv = document.getElementById("<%= MyValidationContorl.ClientID %>");
    cv.innerHTML = '';
}

<html>
   <form>
       <asp:TextBox id="MyTextControl" runat="server" />
       <asp:CustomValidator ID="MyValidationContorl" runat="server" />
       <input type="button" onclick="javascript:ClearCCData(); return false;" runat="server" />
   </form>
</html>
21

投稿を行うたびにページ検証が実行されます。問題のように見えるのは、検証コンテンツcv.innerHTML = '';をクリアしていることです。これにより、検証メッセージが永久に失われ、検証が再度実行されないと見なされます。

@Glennular回答の場合、コードはバリデーターDisplayプロパティを処理しません。バリデーターがDynamicに設定されている場合、バリデーターはvalidator.style.displayを使用して切り替えられますが、NoneまたはInlineに設定されている場合、validator.style.visibilityプロパティは処理されます。代わりに使用されます。

代わりにasp.netValidatorUpdateDisplayを使用することをお勧めします。

<script type="text/javascript">
    function Page_ClientValidateReset() {
        if (typeof (Page_Validators) != "undefined") {
            for (var i = 0; i < Page_Validators.length; i++) {
                var validator = Page_Validators[i]; 
                validator.isvalid = true;
                ValidatorUpdateDisplay(validator);
            }
        }
    }
</script>

更新:検証の概要をリセット

<script type="text/javascript">
function Page_ValidationSummariesReset(){
    if (typeof(Page_ValidationSummaries) == "undefined")
            return;
    for (var i = 0; i < Page_ValidationSummaries.length; i++)
            Page_ValidationSummaries[i].style.display = "none";

}
</script>
39
MK.

これは、すべての検証グループのすべてのバリデーターをリセットします。

<script type="text/javascript">
    Page_ClientValidate('');
</script>
16
kerem

次のコードチャンクを試してください。

$("#<%= txtUserSettingsEmailRequiredValidator.ClientID %>").css("display", "none");

これが私のために働いたようにうまくいくことを願っています。 :)

0
Shararti