jQuery对话在使用asp:updatepanel

时间:2016-06-28 16:07:39

标签: asp.net datepicker updatepanel

我有asp validator个控件和jquery dialog。 我正在asp:UpdatePanel使用ajax

刷新页面后,validators仍会通过显示*符号来验证字段,如果出现问题,但我的jQuery弹出窗口不再弹出。

我在datepicker之后postback停止显示时解决了问题后,它停止了工作。为了解决这个问题,我添加了以下代码:

 $(document).ready(function () {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    Sys.WebForms.PageRequestManager.getInstance().beginAsyncPostBack();
    function EndRequestHandler(sender, args) {
        $('.datepicker1, .datepicker2').datepicker({
            dateFormat: "mm/dd/yy",
            defaultDate: "1w",
            changeMonth: true,
            numberOfMonth: 1
        });
    }
});

修复了datepicker问题。然而,它打破了,显示验证弹出的验证器逻辑。以下是验证代码:

function ValidateFields() {
    var isValid = false;

    isValid = Page_ClientValidate('vgForm');

    if(!isValid){
        $('#errorDisplay').dialog({
           title: "Validation Error",
           modal: true,
           resizable: false,
           width: 250,
           buttons:{
           Close: function(){
                $(this).dialog('close');
                }
           }
       });
    return false;
}
return true;
}

解决这个问题的正确方法是什么?

我找到了一些问题的解决方法,但是现在,只要页面加载,Validators就会显示*并显示jQuery弹出窗口,如果必填字段验证失败。

以下是更新:

<script language="javascript">

    function ValidateFields() {
        var isValid = false;

        isValid = Page_ClientValidate('vgForm');

            if (!isValid) {
                $('#errorDisplay').dialog({
                    title: "Validation Error",
                    modal: true,
                    resizable: false,
                    width: 250,
                    buttons: {
                        Close: function () {
                            $(this).dialog('close');
                        }
                    }
                });
                return false;
            }
            return true;
        }

        function DatePickerInit() {
            $(".datepicker1, .datepicker2").datepicker({
                dateFormat: "mm/dd/yy",
                defaultDate: "1w",
                changeMonth: true,
                numberOfMonth: 1
            });

        }

</script>

<script language="javascript">

    $(function () {

        ValidateFields();
        DatePickerInit();
    });
</script>

<asp:ScriptManager ID="SM" runat="server">
</asp:ScriptManager>

<script type="text/javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(ValidateFields);
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(DatePickerInit);
</script>


<asp:UpdatePanel ID="updatepanel1" runat="server">
<ContentTemplate>

//Form and GridView goes here

</ContentTemplate>
</asp:UpdatePanel>

<div id="errorDisplay">
     <asp:ValidationSummary ID="vSum" runat="server" ShowSummary="true" ValidationGroup="vgForm"></asp:ValidationSummary>   
</div>

0 个答案:

没有答案