Javascript 即使整个TR显示为“无”,也会触发验证
我有一排桌子,如下所示Javascript 即使整个TR显示为“无”,也会触发验证,javascript,jquery,asp.net,validation,Javascript,Jquery,Asp.net,Validation,我有一排桌子,如下所示 <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=
<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>
此功能正常,但是,即使trEm
is(显示:无),也会激发所需字段的验证
当此行处于不可见模式时,如何防止此验证???尝试
$('#trEm').is(':visible')
{
if ($(value).val() == '0' && $(value).is(':checked'))
{
$('#trEm').css('display', 'none');
}
}
您可以通过jQuery检查元素是否可见:
selector = '#yourDiv';
var visible = $(selector).is(":visible");
在使用移动设备时,您可以使用现代浏览器。否则,这个解决方案不会在任何地方都有效。我在这里找到了答案
$('[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");
});
$('[Id$=“ibtnSubmitFirstPanel”]')。单击(函数(){
var控制=[];
可见var;
对于(变量i=0;i
请参考它@AijazChauhan现在呢。?这还好吗?我还是不明白,文本框会激活验证,即使行是不可见的。我需要一些逻辑来防止在trEm设置为显示时进行验证:none@AijazChauhan很抱歉,我刚刚提供了一个没有
#
的id选择器,现在请尝试。@AijazChauhan您能演示一下您的情况,以便我们可以轻松解决您的问题吗。?
$('[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");
});