如果通过 jquery 勾选复选框,我试图禁用必填字段验证器。
它工作正常,但在回发页面上,验证器未被禁用,我看到必填字段消息。
<asp:CheckBox ID="chkAssociate" Text="Associate / Duplicate Email"
runat="server" TabIndex="-1" />
<asp:TextBox ID="txtAddress" TabIndex="4" Width="220px" TextMode="MultiLine" Rows="3" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvAddress" runat="server" ControlToValidate="txtAddress" Display="Dynamic" CssClass="required" ErrorMessage="* Required" ValidationGroup="Save" SetFocusOnError="True"></asp:RequiredFieldValidator>
JQUERY
var valAddress = $("[id*=rfvAddress]");
if ($(this).is(':checked'))
{
$("[id*=spAddress]").css('display', 'none');
ValidatorEnable(valAddress[0], false);
}
else
{
$("[id*=spAddress]").css('display', 'inline');
ValidatorEnable(valAddress[0], true);
}
最佳答案
您的问题在您提到的链接中;客户端上的任何更改都不会保留在服务器上;您必须在页面回发时解释验证器是否已启用,并在服务器控件本身上设置 Enabled 属性:
if (chkAssociate.Checked) {
rfvAddress.Enabled = False;
}
这应该会持续返回给客户端。更改客户端和服务器上的启用状态可能会有不同的行为。
关于c# - Asp.net 要求验证器在回发时重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26551163/