如何绕过 Asp.net 控件验证仅对按钮单击的几个控件?
How to bypass Asp.net control validation only for few control on button click?
我有一个接受用户输入的 ASP.NET 表单。表单上有一个保存并添加按钮来执行不同的功能。
我遇到的问题是,我在表单上有一组验证器,当按下“添加”按钮时,表单得到验证。页面上有 5 个控件,但在单击“添加按钮”期间,我只需要验证两个控件。只有在单击“保存”按钮期间,我才应该验证所有控件。
如何在单击“添加”按钮时忽略这 3 个控件验证。
有什么解决办法吗?
要跳过某些验证,我想您可能想在 jquery
到 enable/disable 中使用 ValidatorEnable
方法。类似于 this:
Email:
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="valEmail" ControlToValidate="txtEmail" runat="server"
ErrorMessage="*Required" ForeColor="Red" ValidationGroup="Group2" />
<br />
Enable Validation:
<input type="checkbox" id="CheckBox2 checked="checked" />
<br />
<asp:Button Text="Submit" runat="server" ValidationGroup="Group2" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).on("click", "#CheckBox2", function () {
var valEmail = $("[id*=valEmail]");
ValidatorEnable(valEmail[0], $(this).is(":checked"));
});
</script>
这是现场演示,以防您想在实施之前对其进行测试:https://www.aspsnippets.com/demos/642/
编辑
要使用纯 javascript
而不是 jquery
来完成此任务,您可以这样做:
ValidatorEnable(document.getElementById('<%=yourValidator.ClientID%>'), false);
我有一个接受用户输入的 ASP.NET 表单。表单上有一个保存并添加按钮来执行不同的功能。
我遇到的问题是,我在表单上有一组验证器,当按下“添加”按钮时,表单得到验证。页面上有 5 个控件,但在单击“添加按钮”期间,我只需要验证两个控件。只有在单击“保存”按钮期间,我才应该验证所有控件。
如何在单击“添加”按钮时忽略这 3 个控件验证。
有什么解决办法吗?
要跳过某些验证,我想您可能想在 jquery
到 enable/disable 中使用 ValidatorEnable
方法。类似于 this:
Email:
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="valEmail" ControlToValidate="txtEmail" runat="server"
ErrorMessage="*Required" ForeColor="Red" ValidationGroup="Group2" />
<br />
Enable Validation:
<input type="checkbox" id="CheckBox2 checked="checked" />
<br />
<asp:Button Text="Submit" runat="server" ValidationGroup="Group2" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).on("click", "#CheckBox2", function () {
var valEmail = $("[id*=valEmail]");
ValidatorEnable(valEmail[0], $(this).is(":checked"));
});
</script>
这是现场演示,以防您想在实施之前对其进行测试:https://www.aspsnippets.com/demos/642/
编辑
要使用纯 javascript
而不是 jquery
来完成此任务,您可以这样做:
ValidatorEnable(document.getElementById('<%=yourValidator.ClientID%>'), false);