Jquery验证和更新面板一起工作

时间:2011-07-11 13:38:26

标签: asp.net jquery-plugins jquery-validate updatepanel

这里通过添加此代码,我解决了尽管有验证错误而将页面发回的问题 ([博客]:Jquery Validation And Update Panel Together) 但它引入了一个新的,现在通过选择主下拉列表我的子下拉列表没有填充我已经从目标方法后面的代码检查,以填充子下拉列表根本没有触发......。

    <asp:UpdatePanel ID="updRole" runat="server" UpdateMode="Conditional">                    <ContentTemplate>     
    <script type="text/javascript" >         
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest            (instance_initializeRequest);        
    function instance_initializeRequest(sender, args) {  
    if (!Validator())   
    {args.set_cancel(true); 
    } 
    }         
    </script> 
    </ContentTemplate> 
    </asp:UpdatePanel> 

我在母版页中有一段代码,其中validator()函数在默认情况下触发的.ready()事件中被触发,但问题是在任何内容页面中添加更新面板是方法正在触发(验证错误也是显示2秒)但页面正在回发。

    <script type="text/javascript">
    // only for demo purposes
    $.validator.setDefaults({
        invalidHandler: function (form, validator) {    

        }
    });

    $().ready(function () {
        Validator();         

    });

    function Validator() {

        var container = $('div.container');
        // validate the form when it is submitted
        var validator = $("#form1").validate({
            errorContainer: container,
            errorLabelContainer: $("ul", container),
            wrapper: 'li',
            meta: "validate"
        });
    }
    </script>

1 个答案:

答案 0 :(得分:0)

头脑中的脚本:

<script type="text/javascript">
    // only for demo purposes
    $().ready(function () {
        $.validator.setDefaults({
            invalidHandler: function (form, validator) {  }
        });

        var container = $("div.container");

        $("#form1").validate({
            errorContainer: container,
            errorLabelContainer: $("ul", container),
            wrapper: 'li',
            meta: "validate"
        });
    });
</script>

ScriptManager控件下面的脚本:

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

    function instance_initializeRequest(sender, args) {
        if (!$("#form1").validate().form()) {
            args.set_cancel(true);
        }
    }