我有一张表,如果单击某行的复选框,则该行将被禁用(意味着所有输入均被禁用,文本框的值设置为0)
的HTML
@for (int i = 0; i < 3; i++) {
tableID = "tableID" + i;
buttonAddID = "buttonAddID" + i;
<table id="@tableID" class="tableSum">
<tbody>
<tr>
<td>Apple</td>
<td>5</td>
<td>100</td>
<td><input type="checkbox" onclick="highLightRow(this)" /></td>
</tr>
<tr>
<td><input type="text" value="Organe" /></td>
<td>5</td>
<td>200</td>
<td><input type="checkbox" onclick="highLightRow(this)" /></td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Total</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr><td colspan="4"><input type="button" class="addRow" onclick="addRow(this)" value="ADD ROW" id="@buttonAddID"/></td></tr>
</tfoot>
</table>
}
在JS中:
function highLightRow(cb) {
var tr = $(cb).closest('tr');
var inputs = tr.find('input[type=text]');
if (cb.checked) {
tr.removeClass('trNormal')
tr.addClass('trHighLight');
for (var i = 0; i < inputs.length; i++) {
inputs[i].disabled = true;
inputs[i].val('0');
}
}
else {
tr.removeClass('trHighLight')
tr.addClass('trNormal');
for (var i = 0; i < inputs.length; i++) {
inputs[i].disabled = false;
}
}
}
inputs[i].disabled = true;
方法有效,禁用了文本框,但该值未设置为0。 最佳答案
您需要像这样将DOMElement
转换为jQuery
对象
$(inputs[i]).val('0');
因为
DOMElement
没有.val
方法,或者您可以使用.value
中的 DOMElement
属性,像这样inputs[i].value = '0';
.disabled
有效,因为这是DOMElement
属性关于javascript - 使用val(value)设置文本框的值不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31198831/