我在一个页面上有一堆 RequiredFieldValidators,我想让 ErrorMessage=""显示在 ModalPopupExtender 中,而不是在页面上。因此,当他们点击提交,一个文本框没有填写,一个ModalPopupExtender会出现在屏幕上,并说 "文本框是必需的",而不是在页面上,其中所需的FieldValidator被放置。
这是我的代码的一个例子(把我的整个页面贴出来就太大了)。
<form id="form1" runat="server">
<div class="container">
<div class="row">
<div class="span3">
<div class="control-group">
<asp:Label ID="NameLbl" class="control-label required" runat="server" Text="Name"></asp:Label>
<div class="controls">
<asp:TextBox ID="NameTxtBox" class="span3" runat="server"></asp:TextBox><span
class="help-block"><asp:RequiredFieldValidator ID="NameRFV" class="RFV" runat="server"
ErrorMessage="Name is Required" ControlToValidate="NameTxtBox"></asp:RequiredFieldValidator></span>
</div>
</div>
</div>
<div class="span3">
<div class="control-group">
<asp:Label ID="Email" class="control-label required" runat="server" Text="Email"></asp:Label>
<div class="controls">
<asp:TextBox ID="EmailTxtBox" class="span3" runat="server"></asp:TextBox><span
class="help-block"><asp:RequiredFieldValidator ID="EmailRFV" class="RFV" runat="server"
ErrorMessage="Required" ControlToValidate="EmailTxtBox"></asp:RequiredFieldValidator></span>
</div>
</div>
</div>
</div>
<asp:Button ID="Button1" class="btn btn-primary" runat="server" Text="Submit"
OnClick="Submit_Click" />
</div>
</form>
<asp:scriptmanager id="ScriptManager1" runat="server">
</asp:scriptmanager><asp:ModalPopupExtender ID="ModalPopupExtender1" cancelcontrolid="btnCancel"
targetcontrolid="Button1" popupcontrolid="SavePopup"
backgroundcssclass="ModalPopupBG" runat="server">
</asp:ModalPopupExtender>
<asp:panel id="SavePopup" style="display: none" runat="server">
<div class="ModalPopup">
<h4>Fields Missing!</h4>
<p>Name is Required, Email is Required.</p>
<input id="btnCancel" type="button" value="Close" /></div>
</asp:panel>
这是一个模拟图,我希望当用户点击提交按钮时,他们应该看到一个像这样的modelpopup,说明哪些字段是空的。
有什么办法可以做到这一点吗?我是否要在modalpopupextender中保留requestfieldvalidators,但我如何确定modalpopupextender是否被激活,我不想让它出现在所有字段都有文本的情况下。
我发现了ValidationSummary工具,并使用这个工具在提交时获得了一个弹出式窗口。
<asp:ValidationSummary ID="ValidationSummary1" HeaderText="You're missing a required field:" EnableClientScript="true" ShowMessageBox="true" ShowSummary="false" runat="server" />
ShowMessageBox="true "是我得到弹出框的原因。
你可以用这样的方法。
<script type = "text/javascript"> function isPageValid() {
var validated = Page_ClientValidate('YourGroupName');
if (validated) {
var mdlPopup = $find('myModalPopup');
if (mdlPopup) {
mdlPopup.show();
return false;
}
}
} </script>