随时监控多个值

时间:2016-02-20 13:17:41

标签: jquery

我有一个介于1到100行之间的表。在每一行中都有两个输入字段。

1) .type 2) [id*=name]

在表的末尾有一个ID为#send的按钮。 如果.type的值为 A,B或C [id*=name]的值为空,则应禁用该按钮,否则启用该按钮。这应该在任何时候由整个表的行监视。

e.g。 99行的值为 A,B或C [id*=name]的值不为空,但1行的值为 A,B或C 且值为[id*=name]的内容为空。 => 该按钮应被禁用。

2 个答案:

答案 0 :(得分:0)

这应该有效:

<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.0.min.js"></script>

<div><input value="" type="text" class="type"><input value="" type="text" id="name_1"></div>
<div><input value="" type="text" class="type"><input value="" type="text" id="name_2"></div>
<div><input value="" type="text" class="type"><input value="" type="text" id="name_3"></div>
<div><input value="" type="text" class="type"><input value="" type="text" id="name_4"></div>
<div><input value="" type="text" class="type"><input value="" type="text" id="name_5"></div>
<div><input type="submit" value="submit" class="submit"></div>

<script>
$('.submit').attr('disabled','disabled');
$(document).on('change',$('.type'),function(e){
    if( $('input:text').filter(function() { return this.value == ""; }).length == 0 ) {
        $('.submit').removeAttr('disabled');
    } else {
        $('.submit').attr('disabled','disabled');
    }
})
</script>

答案 1 :(得分:0)

这是我的工作解决方案。

$( ".type, [id*=name]" ).change(function() {

    var obj = {};

    $('tbody tr').each(function (i) {
        obj[i] = { type: $(this).find(".type").val(), name: $(this).find("[id*=name]").val() };
    }); 

    $.each(obj, function (index, value) {           
        if (( value['type'] == "A" || value['type'] == "B" || value['type'] == "C" ) && value['name'] == "") {
            $('#send').prop('disabled', true);
            return;
        } 
    });
});