JSFiddle - React, Tailwind, and code Playground
HTML
<div id="placement">
<h3>Placement</h3>
<form action="" id="placement-form" class="placement-form">
<input type="text" class="site inFieldLabel" value="Site" title="Site" />
<input type="text" class="placementdesc inFieldLabel" value="Placement description" title="Placement description" />
<input type="text" class="placementtype inFieldLabel" value="Placement Type" title="Placement Type" />
<input type="text" class="size inFieldLabel" value="Size" title="Size" />
<input type="text" class="pricing inFieldLabel" value="Pricing" title="Pricing" />
<select class="servetype" title="Serve Type">
<option>STD – Standard trafficking type (ie, regular display banners)</option>
<option>SSV – Site-served (no ad server tracking)</option>
<option>PIX – Pixel</option>
<option>CCD – Click command</option>
<option>PCC – Pixel and Click command</option>
<option>RMV – Rich Media Video</option>
<option>RME – Rich Media Expand</option>
<option>RMO – Rich Media Other</option>
</select>
<span class="placement_span"></span>
</form>
</div>
<input type="button" value="+" class="addRow" />
<input type="button" id="generate" value="Generate" />
JavaScript
var uniqueId = 1;
var generatePage = function(evt){
$('.placement-form').each(function(i, frm){
frm = $(frm); // wrap in jQuery
// i is the interation counter
// frm is the form element
var site, placement_desc, placementtype, size, pricing, servetype;
site = frm.find(".site").val();
placement_desc = frm.find(".placementdesc").val();
placementtype = frm.find(".placementtype").val();
size = frm.find(".size").val();
pricing = frm.find(".pricing").val();
servetype = frm.find(".servetype").val();
var content = '<br />'+site+'_'+placement_desc+'_'+placementtype+'_'+size+'_'+pricing+'_'+servetype;
frm.find('.placement_span').html(content);
});
};
var clickclear = function (evt){
var ele = $(this);
evt.preventDefault();
if(ele.val() == ele.attr('title')){
ele.val(''); // if the value is a "label" then clear it for the user
}
return false;
};
var clickrecall = function(evt) {
var ele = $(this);
evt.preventDefault();
if(ele.val() == '') {
// if the user hasnt entered any text then revert to the "label"
ele.val(ele.attr('title'));
}
return false;
};
$('.placement-form .inFieldLabel').focus(clickclear).blur(clickrecall);
$('.addRow').click(function() {
var formCopy = $("#placement-form").clone(true);
var formCopyId = 'placement-form'+uniqueId;
formCopy.attr('id',formCopyId);
$('#placement').append(formCopy);
uniqueId++;
});
$('#generate').click(generatePage);