如何检查数组中的特定项是否有值? JavaScript的

时间:2015-11-30 11:04:39

标签: javascript jquery

我有一个从元素中获取值的函数:

function getTransactionValues() {
    var o = {};
    o.reservations        = [];
    $('#custom-headers option:selected').each(function (i, selected) {
        o.reservations[i] = $(selected).val();
    });
    o.amount              = $('input[name=amount-price]').val();
    o.currency_value      = $('input[name=currency-value]').val();
    o.currency_name       = $('.currency_appendto option:selected').html();
    o.actual_amount       = $('input[name=actual-amount]').val();
    o.actual_remaining    = $('input[name=actual-remaining]').val();
    o.funds_arrival_date  = $('input[name=funds-arrival]').val();
    o.paid_to             = $('.paidto option:selected').html();
    o.checkbox            = $('.multi-transaction:checked').map(function () {
        return this.value
    }).get();
    return o;
}

现在我想检查是否填写了amount,actual_amount和funds_arrival_date。如果他们是我将从按钮释放禁用的类。我试过了

    var check_review = function () {
    var a = getTransactionValues();
    var options = [a.amount, a.actual_amount, a.funds_arrival_date];

    for(i = 0; i < options.length; i++) {
        if(options[i].length > 0) {
            $('a[name=review_button]').removeClass('disabled');
        }
        else{
            //this array is empty
            alert('There is a problem!');
        }
    }
}

$('.test').click(function() {
    check_review();
});

但它似乎没有起作用..

3 个答案:

答案 0 :(得分:1)

Remove disabled attribute using JQuery?

请你看看上面的链接,我想我们应该使用$('。inputDisabled')。prop(“disabled”,false);

答案 1 :(得分:0)

即使单个数组元素非空,您的代码也会从disabled中删除类a。要确保数组的所有元素都是非空的,然后只想删除该类,那么方法是:

for(i = 0; i < options.length; i++) {
        if(options[i].length > 0) {
            $('a[name=review_button]').removeClass('disabled');
        }
        else{
            $('a[name=review_button]').addClass('disabled');
        }
    }

或者另一种方式是

var check = true;
for(i = 0; i < options.length; i++) {
        if(options[i].length == 0) {
            check = false;
        }

    }

if(check ) $('a[name=review_button]').removeClass('disabled');

答案 2 :(得分:0)

尝试使用if (options.every(Boolean)) { $("a[name=review_button]").removeClass("disabled"); } else { // do other stuff }

{{1}}