elow is the code i am using i am able to add new input box wen i click but it should stop adding based on the user input like no. of user-entered as 4 based on that add input box should stop
in below example:-$bookcount is user input field which comes from html input box
var i = 1;
if(i>$(bookcount))
{
$('#add').click(function()
{
i++;
$('#dynamic_field').append('<tr id="row'+i+'"><td><input type="text" name="title[]" </td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
}});
$(document).on('click', '.btn_remove', function(){
var button_id = $(this).attr("id");
$('#row'+button_id+'').remove();
});
$('#submit').click(function(){
$.ajax({
url:"name.php",
method:"POST",
data:$('#add_name').serialize(),
success:function(data)
**strong text** {
alert(data);
$('#add_name')[0].reset();
}
});
});
Advertisement
Answer
Couple of issues to note:
- Assuming
bookcountis found from$("#bookcount")then you’ll need to get the.val()and convert it to a number (as “10”<“2”) - Check against bookcount value inside the click event:
var i = 1;
var bookcount = $("#bookcount");
$('#add').click(function() {
if (i>(bookcount.val()*1)) {
// do nothing
return false;
}
i++;
$('#dynamic_field').append('<tr....
- as you also have a remove function, don’t forget to reduce
iwhen removing
$(document).on('click', '.btn_remove', function(){
--i;
(in this case, I recommend something other than i, eg rowCount).
You can also do away with i (rowCount) by querying how many rows have been created dynamically:
var bookcountinput = $("#bookcount");
$('#add').click(function() {
var rows = $("#dynamic_field tr").length;
if (rows > bookcountinput.val()*1)
return;
$('#dynamic_field').append('<tr....
});
