【发布时间】:2015-11-11 05:55:03
【问题描述】:
我有一个在不隐藏时应该是强制性的下拉列表,所以我有一个RequiredFieldValidator。
<table runat="server" id="tblLocations" class="ts1">
<tr>
<td class="tr0">
Location:
</td>
<td>
<asp:DropDownList ID="ddlLocations" runat="server">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvDdlLocations" runat="server" ControlToValidate="ddlLocations" InitialValue="0" validationgroup="LocationValidation" ErrorMessage="Please select a Location" />
</td>
</tr>
</table>
选择单选按钮时,我将此表的可见性设置为false。
我想在不可见时禁用此字段的验证,所以我在单选按钮更改事件上设置了这个:
rfvDdlLocations.Enabled = tblLocations.Visible;
但是,这不会禁用验证。
我已尝试按照其他地方的建议使用 JQuery,但这也没有效果:
<script type="text/javascript">
$("[id$='btnDelegate']").click(function () {
if (!$("[id$='tblLocations']").is(':visible')) {
ValidatorEnable($("[id$='rfvDdlLocations']")[0], false);
}
//ValidationSummaryOnSubmit("LoginUserValidationGroup");
if (Page_ClientValidate("LocationValidation")) {
alert('it is valid');
return true;
}
else {
alert('Not valid');
return false;
}
});
【问题讨论】:
-
当我们可以简单地使用 $("#btnDelegate") 时,是否有任何理由使用 $("[id$='btnDelegate']") 选择元素?还可以通过将 if (!$("[id$='tblLocations']").is(':visible')) 替换为 if (!$("[id$='tblLocations']").is( '可见的'))。注意可见之前没有“:”
-
@user2181397 感谢您的建议,但它们不会改变代码行为
标签: javascript jquery asp.net validation