【发布时间】:2012-03-31 00:50:07
【问题描述】:
我正在使用一个向导,用户可以在其中注册。有一个带有两个选项的 asp:RadioButtonList,并且向导中的某些输入字段会随着单选按钮的变化而变化。在每个字段上都有一些 asp:Validators(例如 asp:RequiredFieldValidator)。问题是,当用户提交页面时,隐藏文本框的验证器仍在弹出。
首先,这里是改变显示文本框和 RadioButtonList 的 div 标签
<div id="divTxt1">
<asp:TextBox runat="server" CssClass="text" ID="txtNumber"
type="number"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1"
runat="server" ControlToValidate="txtNumber" EnableClientScript="true" ErrorMessage="Error" ToolTip="Error">*
</asp:RequiredFieldValidator>
</div>
<div id="divTxt2">
<asp:TextBox runat="server" CssClass="text" ID="txtNumber2"
type="number"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2"
runat="server" ControlToValidate="txtNumber2" EnableClientScript="true" ErrorMessage="Error2" ToolTip="Error2">*
</asp:RequiredFieldValidator>
</div>
<div id="radio">
<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value="1" Selected="True">Privat</asp:ListItem>
<asp:ListItem Value="2">Offentlig</asp:ListItem>
</asp:RadioButtonList>
</div>
我尝试使用 JQuery 来解决它,如下所示,我读过它应该可以解决问题,但不幸的是它没有:
$(document).ready(function () {
$('#<%= WizardStep1.ContentTemplateContainer.FindControl("RadioButtonList1").ClientID %> input').change(function () {
if ($(this).val() == "1") {
$('#txtNumber').toggle('fast');
$('#txtNumber2').toggle('fast');
ValidatorEnable($('#<%=WizardStep1.ContentTemplateContainer.FindControl("RequiredFieldValidator1").ClientID %>')[0], false);
ValidatorEnable($('#<%=WizardStep1.ContentTemplateContainer.FindControl("RequiredFieldValidator2").ClientID %>')[0], true);
}
if ($(this).val() == "2") {
$('#txtNumber').toggle('fast');
$('#txtNumber2').toggle('fast');
ValidatorEnable($('#<%=WizardStep1.ContentTemplateContainer.FindControl("RequiredFieldValidator2").ClientID %>')[0], false);
ValidatorEnable($('#<%=WizardStep1.ContentTemplateContainer.FindControl("RequiredFieldValidator1").ClientID %>')[0], true);
}
});
});
那么,有什么想法吗?
【问题讨论】:
-
你确定吗?你能找到控制吗?检查 NULL 吗?
-
当我在 IE 中调试时,它没有错误地通过 - 但它没有禁用。
-
没有任何 javascript 错误,'因为如果它不起作用,一定有一个,你不这么认为吗???只需尝试使用萤火虫进行检查。它应该会给你一个提示。
-
你能分享你的javascript“生成”版本(绑定了id)吗?
标签: jquery asp.net wizard requiredfieldvalidator