今天遇到这个问题! 其实之前也遇到过这个问题!没有记录下来!又重蹈覆辙了!
当aspx页面使用了下面的验证控件,<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="RangeValidator"></asp:RangeValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator"></asp:RegularExpressionValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"></asp:CompareValidator>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator"></asp:CustomValidator>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
页面上如果还有服务器控件包括 Button、HtmlButton、HtmlInputButton、HtmlInputImage、ImageButton 以及 LinkButton 这几个控件! 当点击他们后,都会验证! 当然有些按钮他不需要验证! 点击任何按钮他都去验证了哦! 这个问题对于不知道的人真的有点郁闷!通过我Google后! 终于找到了解决方案: 设置以上服务器标签的CausesValidation = “false”
CausesValidation 属性规定当按钮控件被点击时是否验证页面。
当按钮被点击时,页面验证默认为执行。
该属性常用于当取消按钮或重置按钮被点击时阻止进行验证。
语法
<asp:Button CausesValidation="TRUE|FALSE" runat="server" />
另:validationgroup 这个属性也可以解决这个问题!
看示例:来源于网络
<h3>BaseValidator ValidationGroup Example</h3>
Please enter your name:<br/>
<asp:textbox id="NameTextBox" runat="server"/>
<asp:requiredfieldvalidator id="NameTextBoxRequiredValidator"
controltovalidate="NameTextBox" display="Dynamic" text="Please enter your name."
validationgroup="UserInfoGroup"
runat="server"/>
<br><br>
<asp:button id="SubmitButton"
text="Submit"
validationgroup="UserInfoGroup"
runat="server"/>
<hr/>
//如果没有设置validationgroup属性,则如果下面的SearchTextBox文本框没有输入值,也不可以提交
//其他Button、HtmlButton、HtmlInputButton、HtmlInputImage、ImageButton 以及 LinkButton
//点击后也没有效果, 建议 如果没有使用了 验证控件 把validationgroup属性设置,同时把
//提交按钮的validationgroup也设置上
Please enter a search topic:<br/>
<asp:textbox id="SearchTextBox"
runat="server"/>
<asp:requiredfieldvalidator id="SearchTextBoxRequiredValidator"
controltovalidate="SearchTextBox"
display="Dynamic"
text="Please enter a topic."
validationgroup="SearchGroup"
runat="server"/>
<br><br>
<asp:button id="SearchButton"
text="Search"
validationgroup="SearchGroup"
runat="server"/>
需要验证的表单:
<form id="form1" runat="server">
<h3>BaseValidator ValidationGroup Example</h3>
Please enter your name:<br/>
<asp:textbox id="NameTextBox" runat="server"/><asp:requiredfieldvalidator id="NameTextBoxRequiredValidator"
controltovalidate="NameTextBox" display="Dynamic" text="Please enter your name."
validationgroup="UserInfoGroup"
runat="server"/><br><br>
Please enter a search topic:<br/>
<asp:textbox id="SearchTextBox"
runat="server"/><asp:requiredfieldvalidator id="SearchTextBoxRequiredValidator"
controltovalidate="SearchTextBox"
display="Dynamic"
text="Please enter a topic."
validationgroup="UserInfoGroup"
runat="server"/><asp:button id="SubmitButton"
text="Submit"
validationgroup="UserInfoGroup"
runat="server"/>
<hr/>
<br><br><asp:button id="SearchButton"
text="Search"
validationgroup="SearchGroup"
runat="server"/>
</form>
以上设置后!只有点击SubmitButton按钮才去验证输入!而点击SearchButton按钮就不会验证!
把以上代码放在aspx页面上,运行即可看到明显的效果!
感谢网络上一些无私的人!分享他们的技术!:)