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");
            });