我有一个表,如果单击一行的复选框,该行将被禁用(表示所有输入都被禁用,文本框的值设置为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.
答案 0 :(得分:3)
您需要将DOMElement
转换为jQuery
对象,如此
$(inputs[i]).val('0');
因为DOMElement
没有.val
方法,或者您可以使用DOMElement
中的.value
属性,所以
inputs[i].value = '0';
.disabled
有效,因为这是DOMElement
属性
答案 1 :(得分:2)
对于该行,请使用eq()代替[]
inputs.eq(i).val('0');
正在发生的事情是访问像inputs[i]
这样的项目,提供没有方法val()
的原生javascript DOM元素。但是eq()
将检索jQuery对象。所以,要么使用上面的,要么采取纯javascript替代
inputs[i].value = '0';
答案 2 :(得分:0)
使用jquery每个函数:
inputs.each(function(){
$(this).val('0');
});
答案 3 :(得分:0)
for (var i = 0; i < inputs.length; i++) {
inputs.eq(i).prop('disabled',true);
inputs.eq(i).val('0');
}
答案 4 :(得分:0)
你试图在javaScript DOM对象上调用 let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light)
let bluredEffectView = UIVisualEffectView(effect: blurEffect)
bluredEffectView.frame = CGRectMake(100, 100, 200, 200)
self.imageview.addSubview(bluredEffectView)
函数,val()
不是JavaScript Native方法,它只能用于jQuery对象,所以你只能用jQuery选择器调用
val()
或者您也可以在$(inputs[i]).val('0');
变量
value