jQuery Add/Remove HTML block dynamically
A script that uses event delegation and on() method for adding and deleting a block of HTML dynamically.
by Rahul Saraswat
HTML
<h2><a href="#" id="addScnt">Add</a></h2>
<div id="p_scents">
<p>
<label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt" value="" placeholder="Input Value" /></label>
</p>
</div>
CSS
* { font-family:Arial; }
h2 { padding:0 0 5px 5px; }
h2 a { color: #224f99; }
a { color:#999; text-decoration: none; }
a:hover { color:#802727; }
p { padding:0 0 5px 0; }
input { padding:5px; border:1px solid #999; border-radius:4px; -moz-border-radius:4px; -web-kit-border-radius:4px; -khtml-border-radius:4px; }
JavaScript
$(function() {
var scntDiv = $('#p_scents');
var i = $('#p_scents p').length + 1;
$('#addScnt').on('click', function() {
$('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="javascript:void(0);" class="remove-button" id="remScnt">Remove</a></p>').appendTo(scntDiv);
i++;
return false;
});
$(document).on("click", "a.remove-button" , function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});
});