我有一个表格行如下
<tr id="trEm">
<asp:TextBox ID="txtEmNumber" runat="server" Width="200" ToolTip="Enter Acknowledgement No." CssClass="body_text capital" MaxLength="16" TabIndex="6"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvEm1Number" runat="server" SetFocusOnError="true" ValidationGroup="first" ErrorMessage="EM Part-I No. is required" ControlToValidate="txtEmNumber" Display="None" Text="*">
<asp:ValidationSummary ID="vsFirstPanel" runat="server" ShowMessageBox="true" ShowSummary="false" ValidationGroup="first" />
</tr>
我已经在jQuery中应用了一些逻辑,它在这一行上应用css以显示
if ($(value).val() == '0' && $(value).is(':checked')) {
$('#trEm').css('display', 'none');
}
这样运作正常,但是,trEm
所需字段的验证激活是(显示:无)。
当此行处于不可见模式时,如何阻止此验证?
答案 0 :(得分:1)
尝试,
$('#trEm').is(':visible')
{
if ($(value).val() == '0' && $(value).is(':checked'))
{
$('#trEm').css('display', 'none');
}
}
答案 1 :(得分:0)
您可以通过jQuery检查元素是否可见:
selector = '#yourDiv';
var visible = $(selector).is(":visible");
在使用移动设备时,您可以依赖现代浏览器。否则这个解决方案无处不在。
答案 2 :(得分:0)
我在这里找到答案
$('[Id$="ibtnSubmitFirstPanel"]').click(function () {
var controles = [];
var visible;
for (var i = 0; i < Page_Validators.length; i++) {
var a = $('#' + Page_Validators[i].controltovalidate).parent().parent().attr("id");
if (typeof a !== 'undefined' && a !== false) {
controles.push(Page_Validators[i]);
}
}
$.each(controles, function (key, value) {
visible = $(controles[key]).parent().parent().is(':visible');
ValidatorEnable(controles[key], visible);
})
return Page_ClientValidate("first");
});
请参考