ghostz00
04-01-2008, 09:45 PM
I have a function that basically makes a copy of an already existing form on demand. And the way I wrote it works, but it's long and tedious and to me it just seems like there is a better way to do it.
function newElement(elm,elmName,closingTag){
var elmName=elmName+numObj;
try{
if (closingTag)
var oElm=document.createElement("<"+elm+" name='"+elmName+"'></"+elm+">");
else
var oElm=document.createElement("<"+elm+" name='"+elmName+"'>");
}
catch(e){
oElm=document.createElement(elm);
oElm.setAttribute("name",elmName);
}
return oElm;
}
function newItem(){
numObj++;
//div item that encapsulates all of the form elements
var divItem=document.createElement("div");
divItem.setAttribute("id","item"+numObj);
divItem.className="item";
divItems.appendChild(divItem);
//qty label
var qty=document.createElement("label");
divItem.appendChild(qty);
qty.setAttribute("for","qty"+numObj);
qty.innerHTML="Qty:";
//qty input
qtyInput=newElement("input","qty",false);
qtyInput.setAttribute("id","qty"+numObj);
qtyInput.setAttribute("type","text");
divItem.appendChild(qtyInput);
qtyInput.style.width="30px";
//item label
var item=document.createElement("label");
divItem.appendChild(item);
item.setAttribute("for","item"+numObj);
item.innerHTML="Item:";
itemInput=newElement("input","item",false)
itemInput.setAttribute("id","item"+numObj);
itemInput.setAttribute("type","text");
divItem.appendChild(itemInput);
//select moulder
var selectInput=newElement("select","type",true);
divItem.appendChild(selectInput);
//option moulder
var optionInput=document.createElement("option");
optionInput.setAttribute("value","moulder");
selectInput.appendChild(optionInput);
optionInput.innerHTML="Moulder";
//br
var br=document.createElement("br");
divItem.appendChild(br);
//desc label
var desc=document.createElement("label");
divItem.appendChild(desc);
desc.setAttribute("for","desc"+numObj);
desc.innerHTML="Desc:";
//desc input
var descInput=newElement("input","desc",false);
descInput.setAttribute("type","text");
descInput.setAttribute("id","desc"+numObj);
divItem.appendChild(descInput);
//br
var br=document.createElement("br");
divItem.appendChild(br);
//itemdate label
var desc=document.createElement("label");
divItem.appendChild(desc);
desc.setAttribute("for","itemdate"+numObj);
desc.innerHTML="Date:";
//itemdate input
var itemdateInput=newElement("input","itemdate",false);
itemdateInput.setAttribute("type","text");
itemdateInput.setAttribute("id","itemdate"+numObj);
divItem.appendChild(itemdateInput);
//delete button
var deleteBtn=document.createElement("input");
deleteBtn.setAttribute("type","button");
deleteBtn.setAttribute("value","Delete Item");
deleteBtn.setAttribute("id",numObj);
divItem.appendChild(deleteBtn);
if (deleteBtn.addEventListener)
deleteBtn.addEventListener("click", function (){ deleteItem(deleteBtn.id); },false )
else if(deleteBtn.attachEvent)
deleteBtn.attachEvent("onclick", function (){deleteItem(deleteBtn.id)});
//br
var br=document.createElement("br");
divItem.appendChild(br);
}
Any thoughts would be appreciated.
function newElement(elm,elmName,closingTag){
var elmName=elmName+numObj;
try{
if (closingTag)
var oElm=document.createElement("<"+elm+" name='"+elmName+"'></"+elm+">");
else
var oElm=document.createElement("<"+elm+" name='"+elmName+"'>");
}
catch(e){
oElm=document.createElement(elm);
oElm.setAttribute("name",elmName);
}
return oElm;
}
function newItem(){
numObj++;
//div item that encapsulates all of the form elements
var divItem=document.createElement("div");
divItem.setAttribute("id","item"+numObj);
divItem.className="item";
divItems.appendChild(divItem);
//qty label
var qty=document.createElement("label");
divItem.appendChild(qty);
qty.setAttribute("for","qty"+numObj);
qty.innerHTML="Qty:";
//qty input
qtyInput=newElement("input","qty",false);
qtyInput.setAttribute("id","qty"+numObj);
qtyInput.setAttribute("type","text");
divItem.appendChild(qtyInput);
qtyInput.style.width="30px";
//item label
var item=document.createElement("label");
divItem.appendChild(item);
item.setAttribute("for","item"+numObj);
item.innerHTML="Item:";
itemInput=newElement("input","item",false)
itemInput.setAttribute("id","item"+numObj);
itemInput.setAttribute("type","text");
divItem.appendChild(itemInput);
//select moulder
var selectInput=newElement("select","type",true);
divItem.appendChild(selectInput);
//option moulder
var optionInput=document.createElement("option");
optionInput.setAttribute("value","moulder");
selectInput.appendChild(optionInput);
optionInput.innerHTML="Moulder";
//br
var br=document.createElement("br");
divItem.appendChild(br);
//desc label
var desc=document.createElement("label");
divItem.appendChild(desc);
desc.setAttribute("for","desc"+numObj);
desc.innerHTML="Desc:";
//desc input
var descInput=newElement("input","desc",false);
descInput.setAttribute("type","text");
descInput.setAttribute("id","desc"+numObj);
divItem.appendChild(descInput);
//br
var br=document.createElement("br");
divItem.appendChild(br);
//itemdate label
var desc=document.createElement("label");
divItem.appendChild(desc);
desc.setAttribute("for","itemdate"+numObj);
desc.innerHTML="Date:";
//itemdate input
var itemdateInput=newElement("input","itemdate",false);
itemdateInput.setAttribute("type","text");
itemdateInput.setAttribute("id","itemdate"+numObj);
divItem.appendChild(itemdateInput);
//delete button
var deleteBtn=document.createElement("input");
deleteBtn.setAttribute("type","button");
deleteBtn.setAttribute("value","Delete Item");
deleteBtn.setAttribute("id",numObj);
divItem.appendChild(deleteBtn);
if (deleteBtn.addEventListener)
deleteBtn.addEventListener("click", function (){ deleteItem(deleteBtn.id); },false )
else if(deleteBtn.attachEvent)
deleteBtn.attachEvent("onclick", function (){deleteItem(deleteBtn.id)});
//br
var br=document.createElement("br");
divItem.appendChild(br);
}
Any thoughts would be appreciated.