如何使用jquery获取动态添加的输入框的输入值

时间:2015-03-03 07:23:09

标签: javascript jquery html jquery-ui

我正在尝试在点击时添加动态字段,并希望获取用户键入的每个输入框值。这是我的工作代码。 HTML代码

<div class="input_fields_wrap">
 <div><input type="text" name="mytext"> <button class="add_field_button">Add More Fields</button>
</div>
</div>

JS代码

$(document).ready(function() {
    var max_fields      = 10; //maximum input boxes allowed
    var wrapper         = $(".input_fields_wrap"); //Fields wrapper
    var add_button      = $(".add_field_button"); //Add button ID
   var x = 1; //initlal text box count
    $(add_button).click(function(e){ //on add input button click
        e.preventDefault();
        if(x < max_fields){ //max input box allowed
            x++; //text box increment
            $(wrapper).append('<div><tr><td><input type="text" name="textbox' + x + '" id="removeId' + x + '" value="' + x + '" ></td><td><button class="remove_field" >Remove</button><button class="save_field" >save</button></td></tr></div>'); //add input box

        }
    });
 $(wrapper).on("click",".remove_field", function(e){ //user click on remove text
        e.preventDefault(); 
        $(this).parent('div').remove(); 
        x--;
    })
    $(wrapper).on("click",".save_field", function(e){ //user click on remove text
        e.preventDefault(); 
        //Here on click of each save button I wanna grab particular text box value that user types in
})
});

每次点击添加更多字段,我都会收到新文本框以及删除和保存按钮,点击保存按钮后我想抓取用户输入的相应文本框值。

JSFiddle

3 个答案:

答案 0 :(得分:1)

PFB代码,希望有所帮助

&#13;
&#13;
$(document).ready(function() {
  var max_fields = 10; //maximum input boxes allowed
  var wrapper = $(".input_fields_wrap"); //Fields wrapper
  var add_button = $(".add_field_button"); //Add button ID
  var x = 1; //initlal text box count
  $(add_button).click(function(e) { //on add input button click
    e.preventDefault();
    if (x < max_fields) { //max input box allowed
      x++; //text box increment
      $(wrapper).append('<div><tr><td><input type="text" name="textbox' + x + '" id="removeId' + x + '" value="' + x + '" ></td><td><button class="remove_field" >Remove</button><button class="save_field" >save</button></td></tr></div>'); //add input box

    }
  });
  $(wrapper).on("click", ".remove_field", function(e) { //user click on remove text
    e.preventDefault();
    $(this).parent('div').remove();
    x--;
  })
  $(wrapper).on("click", ".save_field", function(e) { //user click on remove text
    var inpVal = $(this).siblings('input').val();
    alert('inp value is :' + inpVal);
    e.preventDefault();
    //Here on click of each save button I wanna grab particular text box value that user types in
  })
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="input_fields_wrap">
  <div>
    <input type="text" name="mytext">
    <button class="add_field_button">Add More Fields</button>
  </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

单击按钮是所需输入标记的兄弟。您可以使用.siblings('input').prevAll('input')将输入元素与.val()一起定位,以获取其值:

$(this).siblings('input').val();

<强>处理程序:

$(wrapper).on("click",".save_field", function(e){ //user click on remove text
    e.preventDefault(); 
    alert($(this).siblings('input').val());
    //Here on click of each save button I wanna grab particular text box value that user types in
});

Working Demo

答案 2 :(得分:0)

您可以为文本框替换提供动态ID:

id="removeId'

id="removeId'+k

然后您可以使用

访问它们
$("#id").val();