首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查数组中的特定项是否有值?Javascript

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

Stack Overflow用户
提问于 2015-11-30 19:04:39
回答 3查看 42关注 0票数 0

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

代码语言:javascript
复制
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是否已填满。如果是,我将从一个按钮上释放被禁用的类。我试过了

代码语言:javascript
复制
    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();
});

但它似乎不起作用..

EN

回答 3

Stack Overflow用户

发布于 2015-11-30 19:12:12

Remove disabled attribute using JQuery?

你能看看上面的链接吗,我认为我们应该使用$('.inputDisabled').prop("disabled",false);

票数 1
EN

Stack Overflow用户

发布于 2015-11-30 19:11:51

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

代码语言:javascript
复制
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');
        }
    }

或者另一种方式是

代码语言:javascript
复制
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');
票数 0
EN

Stack Overflow用户

发布于 2015-11-30 19:13:03

尝试使用Array.prototype.every()

代码语言:javascript
复制
if (options.every(Boolean)) {
  $("a[name=review_button]").removeClass("disabled");
} else {
  // do other stuff
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33997119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档