0
     $(document).ready(function () {
        $("#formIsValid").val("false"); 
        $('#form1').validate({
            rules: {
                <%= CmyCd.UniqueID %>: { required:true },
                <%= CmyName.UniqueID %>: { required:true },
            },
            messages: {
            },highlight: function(element, errorClass) {
                $(element).addClass("redBorder");
            },
            unhighlight: function(element, errorClass) {
                $(element).removeClass("redBorder");
            },
            submitHandler: function(form){
                $("#formIsValid").val("true");  
            }
        });

        Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckValidationStatus); 

        function CheckValidationStatus(sender, args) { 
            if($("#formIsValid").val() == "false") { 
                args.set_cancel(true); 
            } 
        }
    });

<input type="hidden" name="formIsValid" id="formIsValid" value="false" />

我在网上搜索并创建了一个在asp.net ajax updatepanel上使用jQuery验证的函数,如果验证失败,代码工作正常,但问题是,如果满足所有条件,我需要单击两次才能实际提交表单,由于 formIsValid onload 是错误的,我不知道如何实际解决这个问题,有任何解决问题的指南吗?

4

2 回答 2

1

所有这些formIsValid隐藏领域的东西都是完全没有必要的。jQuery Validate 插件中已经内置了一个方法,该方法.valid()会触发验证测试并返回一个布尔值。

$(document).ready(function () { 

    $('#form1').validate({
        rules: {
            <%= CmyCd.UniqueID %>: { required:true },
            <%= CmyName.UniqueID %>: { required:true },
        },
        messages: {
        },
        highlight: function(element, errorClass) {
            $(element).addClass("redBorder");
        },
        unhighlight: function(element, errorClass) {
            $(element).removeClass("redBorder");
        }
    });

    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckValidationStatus); 

    function CheckValidationStatus(sender, args) { 
        if ($('#form1').valid()) { 
            args.set_cancel(true); 
        } 
    }

});

或者,您也许可以只使用submitHandler回调函数更直接地运行您的函数。(由于submitHandler仅在有效表单上触发,因此在这种情况下,外部测试有效性似乎是多余的。)

于 2013-05-16T15:17:52.673 回答
0
        $(document).ready(function () {
        $('#form1').validate({
            rules: {
                <%= CmyCd.UniqueID %>: { required:true },
                <%= CmyName.UniqueID %>: { required:true },
            },
            messages: {
            },highlight: function(element, errorClass) {
                $(element).addClass("redBorder");
            },
            unhighlight: function(element, errorClass) {
                $(element).removeClass("redBorder");
            },
        });

        ); 
        Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(CheckValidationStatus); 

        function CheckValidationStatus(sender, args) { 
            if ($('#form1').valid()) { 
                args.set_cancel(false); 
            } else{
                args.set_cancel(true); 
            }
        }
于 2013-05-17T01:25:03.803 回答