1

I am trying to add dynamic fields on click and want to fetch each input box value that user types. Here is my working code. HTML code

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

JS code

$(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
})
});

On each click of add more fields I get new text box along with remove and save button, upon clicking on save button I want to grab its respective text box value that user has typed.

JSFiddle

3 Answers 3

1

PFB code , hope it helps

$(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
  })
});
<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>

Sign up to request clarification or add additional context in comments.

Comments

0

clicked button is sibling of required input tag. you can use .siblings('input') or .prevAll('input') to target input element along with .val() to get its value:

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

Handler:

$(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

Comments

0

you can give dynamic id to your textboxes replace:

id="removeId'

with

id="removeId'+k

And then you can access them using

$("#id").val();

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.