I have the following:
<table>
<tr><td>author's first name</td><td>author's last name</td></tr>
<tr><td><input type='text' name='first_name' /></td><td><input type='text' name='last_name' /></td></tr>
</table>
<a href='' onclick='return false;'>Add Author</a>
and each time I click the link tag to 'add author', I want to create an extra table row like the following:
<tr><td><input type='text' name='first_name2' /></td><td><input type='text' name='last_name2'</td></tr>
I looked at .append() and I'm not sure exactly how to use it for my situation. And I'd like to be able to add infinite amount of new table rows. How do I do this?
Firstly, correct your HTML as:
(I have added indents only for visibility) and do not use inline JavaScript. Plus, be consistent, preferably use
"
(double quotes) for HTML attributes,'
(single quotes) for JavaScript strings.Second, do something like that:
It will add a row to the table with each click on the link having class
add-author
(just to be sure no other link is influented), incrementing number at the end of the name of every inserted field's name by 1. The row will be inserted at the end of the table having classauthors-list
(same reason as with class for a link). See this jsfiddle as a proof.Check it out here.
You'll probably want to increase the number in the name attributes in each iteration.
Give an id to your table, suppose my_table and an id to the anchor a suppose my_button then try the below:
Your modified code:
And add the below script after including the jquery library in your page.