如何在复选框上的行中更改输入字段名称

时间:2017-08-13 06:33:30

标签: javascript jquery

更改选中复选框行的输入字段名称

注意:每行中可能存在或不存在类型字段。

如果name []和type [] fields存在,请将name更改为name1 []和type1 []。或者只是在类型[]不存在的情况下更改name []字段的名称。

$(document).ready(function() {
$(".click1").on('change', function() {
            if($(this).is(":checked")) {          
               alert('checked')
            }        
        });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li id="row_3">
   <div class="col-md-6">
      <input type="text"  name="name[]">
       <input type="text"  name="type[]">
       <input type="checkbox" name="click" class="click1">
      </div>
   </div>
</li>

2 个答案:

答案 0 :(得分:2)

您应.find('input[name^="type"]')并检查是否存在,如果是,请将其他输入元素的name更改为name1。以下是更新后的代码:

$(document).ready(function() {
  $(".click1").on('change', function() {
    if ($(this).is(":checked")) {
      if ($(this).parent().find('input[name^="type"]').length) {
        $(this).parent().find('input[name^="name"]').prop('name', 'name1[]');
      }
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li id="row_3">
  <div class="col-md-6">
    <input type="text" name="name[]">
    <input type="text" name="type[]">
    <input type="checkbox" name="click" class="click1">
  </div>
</li>

答案 1 :(得分:0)

id添加到这两个元素中,以便您可以在代码中轻松访问它们。

<input type="text" id="name" name="name[]">
<input type="text" id="type" name="type[]">

并且,在您的jQuery中,更改如下名称:

$(document).ready(function() {
  $(".click1").on('change', function() {
    if($(this).is(":checked")) {          
      $("#name").attr("name", "name1[]");
      $("#type").attr("name", "type1[]");
    }        
  });
});

好消息是,如果您移除#type字段,$("#type")将返回一个空集,并且您将不会对其执行任何操作。