入力グループのいずれかに何かが入力されているかどうかに基づいて、入力グループを無効および有効にする方法をアプリに体系的に提供しようとしています。jFiddleでこれを行う方法をいじり始めましたが、現在行き詰まっています。
問題は、複数のグループで機能するのに問題があることです.. 1 つのグループで正常に動作します。
ここに私のjFiddleとコードがあります:
<div class="one_or_other">
<h1>Some Input Group</h1>
<p class="ooo_group_1">
<input type="text" data-disable='["ooo_group_2","ooo_group_3"]' />
<input type="text" data-disable='["ooo_group_2","ooo_group_3"]' />
</p>
OR
<p class="ooo_group_2">
<input type="text" data-disable='["ooo_group_1","ooo_group_3"]' />
<input type="text" data-disable='["ooo_group_1","ooo_group_3"]' />
</p>
OR
<p class="ooo_group_3">
<input type="text" data-disable='["ooo_group_1","ooo_group_2"]' />
<input type="text" data-disable='["ooo_group_1","ooo_group_2"]' />
</p>
</div>
<div class="one_or_other">
<h1>Some Other Input Group</h1>
<p class="ooo_group_1">
<input type="text" data-disable='["ooo_group_2","ooo_group_3"]' />
<input type="text" data-disable='["ooo_group_2","ooo_group_3"]' />
</p>
OR
<p class="ooo_group_2">
<input type="text" data-disable='["ooo_group_1","ooo_group_3"]' />
<input type="text" data-disable='["ooo_group_1","ooo_group_3"]' />
</p>
OR
<p class="ooo_group_3">
<input type="text" data-disable='["ooo_group_1","ooo_group_2"]' />
<input type="text" data-disable='["ooo_group_1","ooo_group_2"]' />
</p>
</div>
と
$('.one_or_other').each(function() {
block = $(this);
block.find('input').keyup( function() {
if(this.value.length !== 0) {
json = $(this).data('disable');
$.each(json, function(i,item) {
block.find('.' + item + ' input').prop('disabled',true).addClass('disabled');
});
} else {
block.find('input').prop('disabled',false).removeClass('disabled');
}
});
});