添加/删除类以显示数组-sonarqube

时间:2019-04-30 16:48:25

标签: javascript jquery css sonarqube

我正在使用声纳分析我的代码,并在以下函数中遇到错误:

$(function () {
     $("#SSNCollection input[type=text]").keydown(function (evt) {

         var IsNullEmptyText = "true";
         var ssntxtArrayText = [];
         var txtLength = 0;
         $("#SSNCollection input[type=text]").each(function () {
             var _tempValues = $(this).val().toString().replace(/[-]/g, '').trim();
             if (!isNaN(this.value.toString().replace(/[-]/g, '').trim())) {
                        var _temptxtlength = this.value.toString().replace(/[-]/g, '').trim().length;

                        ssntxtArrayText.push(_tempValues);
                    }
                });
                $.each(ssntxtArrayText, function (index, value) {
                    if (value.length >= 0) {
                        $('#resultValidation').css({
                            'display': 'none',
                        });
                        return false;
                    } else {
                        $("#resultValidation").removeAttr("style");
                    }

                });
            });
        });

问题始于if (value.length >= 0) {。因为数组长度总是> = 0,所以if和后面的else是不必要的。 因此我将语句更改为

$.each(ssntxtArrayText, function (index, value) {
       $('#resultValidation').css({
              'display': 'none',
       });
       return false;
});

我现在的问题是,有人告诉我应该使用addClass('hidden')removeClass('hidden'),因为我可能最终需要else语句。但是我不确定在这种情况下如何利用它们。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

hidden 类通常包含在CSS框架(如Bootstrap)中。如果您不使用Bootstrap(或不确定),只需将以下CSS添加到项目的CSS文件中即可。

.hidden { display:none!important; }

或嵌入式html版本

<style>.hidden { display:none!important; }</style>

关于使用条件逻辑的注意事项-查看代码后,我可以确认 value 变量未返回数组。实际上,它确实返回一个字符串值,这意味着检查长度是否大于或等于0是适当的。如果要在运行$.each之前检查数组长度,只需将$.each包装在if(ssntxtArrayText.length > 0)语句中即可。以下示例显示了使用 .addClass() .removeClass()并在运行之前检查数组是否具有任何值的正确实现。

if(ssntxtArrayText.length > 0) {
    $.each(ssntxtArrayText, function (index, value) {
        if (value.length >= 0) {
            $('#resultValidation').addClass('hidden'); //hide
            return false;
        } else {
            $("#resultValidation").removeClass('hidden'); //unhide
        }
    });
}

注意:如果要检查有效的社会保险号,我建议确保该值的长度为9个字符。可以这样操作:if (value.length == 9) {