禁用行中一个输入值为0的所有输入

时间:2015-05-26 22:58:09

标签: javascript jquery

我想遍历一个表并获取特定行中输入的值。如果该值为0,则禁用该行中的所有输入。

这是我最近的失败尝试。

$('.hiderow-0 input[id*="Quantity"]').each(function() {
   if($(this ).val() == 0){
     $(this).closest('tr').find("input,button,textarea").attr('disabled',true);
    }

 });

示例HTML

<table>
<tr class='hiderow-0'><td><select name="data[TransactionItem][0][quantity]" id="TransactionItem0Quantity">
<option value="0" selected="selected">0</option>
<option value="1">1</option>
<option value="2" >2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select></td>
<td><input name="data[TransactionItem][0][note]" value=""  maxlength="100" type="text" id="TransactionItem0Note"/></td>
<td><input type="checkbox" name="data[TransactionItem][0][waitlisted]"  class="waitlisted" options="0 1" value="1" id="TransactionItem0Waitlisted"/>    
</td></tr>
</table>

3 个答案:

答案 0 :(得分:1)

试试这个

$(this).closest("tr:input").attr("disabled", "disabled");

答案 1 :(得分:0)

你想要.prop('disabled', true).attr()更改HTML属性。 .prop() vs .attr()

答案 2 :(得分:0)

在我使用选择而不是输入后得到它

Persons
 $('.hiderow-0 select[id*="Quantity"]').each(function() {
    if($(this).val() == 0){ 
    $(this).closest('tr').find("input,select").attr('disabled',true);
 
  }

 });