最初,“发票行”容器中的所有输入字段都被禁用,除了第一个。当用户在属于第一个“发票行”的任何字段中输入任何文本时,我希望启用第二个发票行输入。当用户将任何文本插入第二个发票行的任何输入字段时,我希望第三个发票行的输入字段启用。
我制定了一些应该工作来完成此任务的 jquery,它确实可以,但仅适用于第一个发票行。换句话说,一旦事件被触发一次,就再也不会被触发。如果是这样,我的问题将得到解决,因为我的代码似乎可以正常工作,但只有第一个 invoice-line 元素的“onChange”。
我一直在尝试解决这个问题很长一段时间,我将不胜感激任何帮助。
标记:
<?php for($i=0; $i < 20; $i++){
echo '
<div class="invoice-line">
<div class="prod-id-cell"><input type="text" class="prod-id-input"></div>
<div class="prod-name-cell">
<input onKeyPress="search(this.value)" type="text" class="prod-name-input"/>
<div class="smart-suggestions">
<!-- RESULT SUGGESTIONS WILL POPULATE HERE -->
</div>
</div>
<div class="price-cell"><input class="price-input" type="text" /></div>
<div class="unit-price-cell"><input class="unit-price-input" type="text" /></div>
<div class="num-kits-cell"><input class="num-kits-input" type="text" /></div>
<div class="amount-cell"><input class="amount-input" type="text" /></div>
</div>';
}
?>
查询:
//regulate what lines are enabled / disabled
$('.invoice-line div input').attr('disabled','disabled');
$('.invoice-line:first div input').removeAttr('disabled');
$('.invoice-line div input').change(function(){
$(this).parent().parent('.invoice-line').next().find('input').removeAttr('disabled');
});