How to add / remove textbox dynamically with jQuery
Published: May 12, 2010 , Updated: May 6, 2010 , Author: mkyong
In jQuery, it’s quite easy to add or remove a textbox dynamically. The idea is quite simple, just combine the use of ‘counter‘ variable, jQuery createElement(), html() and remove() method. See below example :
jQuery dynamic textbox example
<html> <head> <title>jQuery add / remove textbox example</title> <script type="text/javascript" src="jquery-1.3.2.min.js"></script> <style type="text/css"> div{ padding:8px; } </style> </head> <body> <h1>jQuery add / remove textbox example</h1> <script type="text/javascript"> $(document).ready(function(){ var counter = 2; $("#addButton").click(function () { if(counter>10){ alert("Only 10 textboxes allow"); return false; } var newTextBoxDiv = $(document.createElement('div')) .attr("id", 'TextBoxDiv' + counter); newTextBoxDiv.after().html('<label>Textbox #'+ counter + ' : </label>' + '<input type="text" name="textbox' + counter + '" id="textbox' + counter + '" value="" >'); newTextBoxDiv.appendTo("#TextBoxesGroup"); counter++; }); $("#removeButton").click(function () { if(counter==1){ alert("No more textbox to remove"); return false; } counter--; $("#TextBoxDiv" + counter).remove(); }); $("#getButtonValue").click(function () { var msg = ''; for(i=1; i<counter; i++){ msg += "\n Textbox #" + i + " : " + $('#textbox' + i).val(); } alert(msg); }); }); </script> </head><body> <div id='TextBoxesGroup'> <div id="TextBoxDiv1"> <label>Textbox #1 : </label><input type='textbox' id='textbox1' > </div> </div> <input type='button' value='Add Button' id='addButton'> <input type='button' value='Remove Button' id='removeButton'> <input type='button' value='Get TextBox Value' id='getButtonValue'> </body> </html>
Any Java questions or problems? please post at this JavaNullPointer.com forum, see you there ~
[ Read More ] You can find more similar articles at jQuery Tutorials
Solutions do not work with jquery 1.7.1.
Any suggestion to update the code ?
Thx
Finally, the code works fine under jquery 1.7.1 without .after() and jQuery.noconflict()
This is Very Good JQuery for adding New Field.
Very Nice………..
the code did not work for me too. i need the codes ASAP. tnx
Great Tutorial Mannn
Thanx……………
How would i add css and style to the textboxes that are added dynamicaly?
Thank you very much! This script is a good start for my project. Thanks!
Its really good and helped me..
Thanks for this! You saved my life!
How do i get the array variable into my php.
Working great but can someone show me how to get the msg variable into my php script?
WOW THIS IS AWESOME! just what i’ve been looking for.

Whew save me a lot of time
anyways..
can you please do a tutorial on how to save the fields value in php/mysql.
Please
i’ll wait for your response.
all of a sudden it’s not working on localhost? I need this.
I think it’s not working in the latest version of jQuery.
Hello I am javid Khan from siber Help .Thank you .It’s work Amazing .Nice post .
[...] LinkedIn [...]
thanks nice work
may I know how do I send it to other php page via POST? I’m a new PHP learner and I don’t know much about javascript.
Thanks in advance
!!thanks a tonne bro!!
Nice coding it’s working 100%,,
I have a small problem, i’m looking for a update for my site..
BOX –> value
(BOX)Length | (BOX)Height | (BOX)Base –> Add |Delete
want to add or delete and these box value should be calculate… have u any idea..
thanks
Buewanesh
Its working. just remove the “.after()” then it will work for jquery-1.4.4.min.js too.
Thanks!
Thank you! you saved my day.
Great!!
Thank you..
)
Thanks, it works!!!
The code works great with Jquery 1.3.x but is not working with 1.4.2 it reports an error as follows:
Error: newTextBoxDiv.after() is undefined
Im not so much experience using jquery, so i cannot help as i would like. But, let me say, this code is great
Greetings
I was able to get it to work with jQuery 1.4.2 by removing the “.after()” and using newTextBoxDiv.html(‘<label…) instead of newTextBoxDiv.after().html('<label…). So far everything appears to be working just fine in 1.4.2 with the ".after()" removed
THX
very useful
Thank you
thanks for this fix, had me stumped for half an hour before i decided to hit google
Thanks for the correction. This solves the problem!
This code is not working with latest version of jQuery (current version is 1.4.2). Can someone correct code so it’s working with latest version of jQuery
Hi,
How do i bind this textbox to a piece of data from database and where.
Please suggest.
Thanks
It’s depends on what framework or language you are using.
I m glad It works easily and very accurate.Good Job..
the code did not work for me.
read the first reply
i was looking for something like this.
i could creat dynamically forms but i couldn’t get the valeus. Nice code, thx
You may consider substituting the “$” by “jQuery”