2016-07-05 88 views
0

我有一个数据表(使用jQuery创建),其第一列包含复选框,最后一列包含文本框。由于文本框和复选框是动态创建的,所以它们具有相同的编号和名称是如下:如何清除jquery中取消选中复选框时的文本框值?

$('#statement-table').dataTable({ 
      "data": json, 
      "dom": 't', 
      "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, 
        'orderable': false, 
         'render': function(data, type, full, meta) { 
           return '<input type="checkbox" name="payment-checkbox" id="select-checkbox"/>'; 
         } 
       }, 

        { 
        'targets': 4, 
        'render': function (data, type, full, meta){ 
         return 
         '<input type="number" id="payement-textbox" name="text[]" class="payment" value=""/>'; 
        } 
        } 

      ], 
      "aaSorting": [[2, 'desc']], 

     }); //End of datatable function 

我的要求是明确的文本框的值时,其相应的复选框选中了。我写了下面的jquery代码,但它不清除文本框:

$("input[name=payment-checkbox]").click(function() { 
      $("table tr td input[type='checkbox']").each(function() { 
       var ischecked = $(this).is(":checked"); 
        if (!ischecked) { 
         $(this).parent().next().find("input[type='text']").val(""); 
        } 
        else 
        { 
         alert("do nothing"); 
        } 
       }); 
      }); 

请帮我这个。

+1

请在OP中包含HTML标记,JS ..或者最好包含一个片段。请检查[mcve](http://stackoverflow.com/help/mcve) – guradio

+1

为什么这些ID相同?当文本框/复选框组合添加到给它们唯一的ID时,你不能在每个ID的末尾添加一个数字迭代器吗? –

+0

给你的表单数据 – user3386779

回答

4

There must not be multiple elements in a document that have the same id value.

使用name属性选择元素

$('[type="checkbox"]').on('change', function() { 
 
    if (!this.checked) { 
 
    $('[type="text"][name="' + this.name + '"]').val(''); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<input type="text" name="name1" value="name1"> 
 
<input type="checkbox" name="name1" checked> 
 
<br> 
 
<input type="text" name="name2" value="name1"> 
 
<input type="checkbox" name="name2" checked>

+0

请检查我的代码片段,我刚刚添加。 –

+0

@ShubhangiGarg,这有什么不同? – Rayon

+0

您的解决方案不起作用 –

0

ü可以测试上的变化,并找到第一个文本框

$('.test').change(function() { 

    var checkboxINstance = $(this); 
    if (!checkboxINstance.is(":checked")) 
    { 
     checkboxINstance.closest('tr').find("input[type=number]")[0].value= ''; 
    }  
}); 

在此处看到提琴https://jsfiddle.net/2b6e7v6t/1/

+0

它给错误“..不是一个函数” –

+0

你有jquery ..对不对?你能给更多的信息吗?像组成html – lordkain

+0

是的,我有jquery –

相关问题