Asp.net必填项验证器在回发时重置

3
我试图通过 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);
}     

你的页面中有UpdatePanel吗?在哪个事件/方法中放置上面的jQuery代码示例? - undefined
1
我在这里找到了一个链接:https://dev59.com/T0bRa4cB1Zd3GeqPyUD_ - undefined
1个回答

2

您的问题在于您提到的链接; 在客户端进行的任何更改都不会保存在服务器上; 您需要解释页面回发时验证器是否启用,并在服务器控件本身上设置Enabled属性:

if (chkAssociate.Checked) {
   rfvAddress.Enabled = False;
}

这样做应该会保存到客户端。在客户端和服务器上更改启用状态可能会表现不同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接