我有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>