我使用jquery动态生成了一个数据表,其中第一列是复选框,最后一列是文本框。我的要求是,当用户取消选中该复选框时,应清除文本框值。我试图用最接近的功能,但它没有发生。 以下是我的代码:
$('#statement-table').dataTable({
"data": json,
"dom": 't',
"info": false,
"pageLength": 8,
"columns": [
{"data":""},
{"data": "statementCode"},
{"data": "dueDate"},
{"data": "statementBalance"},
{"data": ""}
],
"columnDefs": [
{className: "pad-md-left-p-10 pad-top-bottom-p-10 white-active-bg mouse-link", "targets": [0,1,2,3,4]},
{
'targets': 0,
'render': function(data, type, full, meta) {
++index;
return '<input type="checkbox" id="select-checkbox'+index+'" name="payment-checkbox" id="select-checkbox"/>';
}
},
{
'targets': 4,
'render': function (data, type, full, meta){
return '<span class="dollar-font">$</span>'+
'<input type="number" id="payement-textbox'+index+'" name="payment-textbox" min="1" max="100000" maxlength="9" class="payment" placeholder="--" value=""/>';
}
}
],
"aaSorting": [[2, 'desc']],
}); //End of datatable function
jQuery代码如下:
$("input[name=payment-checkbox]").on('change', function() {
var ischecked = this.checked;
if (!ischecked) {
$(this).closest(".payment").val('');
}
});
当我取消选中该复选框时,更改事件会被触发,但它不会清空文本框。你能告诉我我做错了吗?
答案 0 :(得分:0)
您需要遍历tr
元素,这是closest()
的作用。然后是.find()
后代payment
元素。
$("input[name=payment-checkbox]").on('change', function() {
var ischecked = this.checked;
if (!ischecked) {
$(this).closest('tr').find(".payment").val('');
}
});
答案 1 :(得分:0)
$("input[name=payment-checkbox]").on('change', function() { var ischecked = this.checked; if (!ischecked) { $(this).parent('tr').siblings().children(".payment").val(''); } });
您可以使用: $(本).parent(&#39; TR&#39)的兄弟姐妹()的儿童。(&#34; .payment&#34)。VAL(&#39;&#39);要么 $(本).parent(&#39; TR&#39)。兄弟姐妹()找到(&#34; .payment&#34)。VAL(&#39;&#39)