jQuery表单验证和更新面板

时间:2012-02-09 19:15:47

标签: c# jquery asp.net validation

我在.net framework 4.0的asp.net web表单中使用updatepanel。在此期间,我实现了jquery表单验证。它在表单验证方面运行良好,但更新面板出现的问题无法进行部分回发但完全回发。感谢任何回复。

我有类似的东西,在表单上进行验证,并在更新面板初始化请求时显示一些图像。

<script type="text/javascript">
    $(document).ready(function () {
        $(".logForm").validate();
        $('#main_UpdatePanelAccount').initializeRequest(function (options) {
            $("#flashAcc").show();
            $("#flashAcc").fadeIn(400).html('<img src="/image/load.gif" align="absmiddle">');
        });
    });
</script>

在此之后,我有两个代码块(一个带有注释,另一个带有取消注释)以确定是否回发。但是,这2个代码块也以更新面板完全回发结束。

<script type="text/javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(instance_initializeRequest);
    function instance_initializeRequest(sender, args) {
        if (!Validator()) {
            args.set_cancel(true);
        }
    } 

//    $(function () {
//        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
//        //Re-initialize jquery after an auto post back.
//        function EndRequestHandler(sender, args) {
//            //Do work after update panel fires.
//            var prm = Sys.WebForms.PageRequestManager.getInstance();
//            if (!Validate()) {
//                prm.abortPostBack();
//                args.set_cancel(true);
//            }
//            else {
//                prm.add_beginRequest();
//                args.set_cancel(false);
//            }
//        }
//    });
</script>

1 个答案:

答案 0 :(得分:2)

首先,如果你的代码在updatepanel中,它将在回发时被删除。与您的问题无关,只是旁注。其次,除非您将updatepanel设置为updatemode =“conditional”,否则它还将更新其他更新面板中的所有内容。如果您仍在进行整页刷新,我会尝试这样做:

<script type="text/javascript">
 <!--
    function Post() {
        __doPostBack('<%= UpdatePanel1.ClientID  %>', '');
    }
 -->
 </script>