我有两个需要验证的字段,如果它们显示在屏幕上。表单最初加载时,它们将被隐藏,除非从DropDown框中选择一个项目,否则它们将保持隐藏状态。选择值后,将显示2个字段,然后验证工作正常。但是,如果选择了另一个不显示这两个字段的值,则它们仍在验证中,并且不允许页面提交。关于如何实现这一目标的任何想法?
function DisplayOutageDates() {
if ($('#ddImpact').val() == "Service Affecting") {
$('#outageDates').css('display','');
document.getElementById('txtOutageStartDate').Visible = true;
document.getElementById('RFVOutageStartDate').Visible = true;
} else {
$('#outageDates').css('display','none');
document.getElementById('txtOutageStartDate').Visible = false;
document.getElementById('RFVOutageStartDate').Visible = false;
}
}
<asp:RequiredFieldValidator ID="RFVOutageStartDate" runat="server"
ControlToValidate="txtOutageStartDate" SetFocusOnError="true"
ErrorMessage="Please enter the Outage Start Date" />
答案 0 :(得分:2)
您可以使用:
ValidatorEnable(val, enable):
Takes a client-validator and a Boolean value.
Enables or disables a client validator.
Being disabled will stop it from evaluating and it will always appear valid.
在msdn上找到。
使用Javascript看起来像:
ValidatorEnable(document.getElementById('<%=Validator1.ClientID%>'), state);
//where state would be a boolean
在JQuery中,这看起来像:
ValidatorEnable($("#<%= Validator1.ClientID %>")[0], state);
答案 1 :(得分:1)
我猜您需要显示和隐藏Validator
控件,以显示和隐藏输入控件。
<强>更新强>
如果使用Validator
隐藏display:none;
控件,它们仍会被渲染并参与验证过程。您需要通过将Visible
属性设置为 false 来隐藏它们。通过这种方式,它们不会被渲染,也不会参与验证过程。