无法检查输入是否有值

时间:2017-08-21 08:03:16

标签: javascript jquery

我想循环遍历id数组并检查值是否存在,并在下面执行填充代码:

function checkBillingFields() {

var inputIDS = [ "#billing_first_name", "#billing_last_name", "#billing_company", "#billing_phone", "#billing_address_1", "#billing_address_2", "#billing_city", "#billing_city"];

var arrayLength = inputIDS.length;

for (var i = 0; i < arrayLength; i++) {

    console.log(inputIDS[i]);

    if ($("inputIDS[i]").val().length == 0){

        $('.woocommerce-billing-fields__field-wrapper').appendTo('.billing-fields');

        $(".billing-heading").css({'margin-top': '100px'});

    }else{
        $(".expand-billing").css({'display': 'none'});
    }

}

}

checkBillingFields();

我得到错误无法读取undefined的属性'length'。我使用本地存储来存储输入,并且它经过了很好的测试。

任何想法都很有帮助,因为我一直在研究并尝试解决这个问题,但没有任何效果。

2 个答案:

答案 0 :(得分:1)

替换你的if语句
if ($(inputIDS[i]).val().length == 0)

这将直接使用jQuery与数组中的值,而不是在您的情况下使用字符串文字。

要确保不再出现任何错误,请按照

进行操作
//First check if element actually exists in DOM
var tmp = $(inputIDS[i]);
if (tmp.length == 1 && tmp.val().length == 0) {

}

答案 1 :(得分:1)

就像您的console.log()if声明

中使用相同内容一样
console.log(inputIDS[i]); 
if ($(inputIDS[i]).val().length == 0){

inputIDS[i] //如果i = 0,则返回#billing_first_name "inputIDS[i]"会返回"inputIDS[i]"