我有一个介于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]
的内容为空。 => 该按钮应被禁用。
答案 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;
}
});
});