I have two divs and a link for each. I’m trying to write an onclick function that appends a new div inside one of the two divs. The new div will have two form inputs appended to them. The new div will have a timestamp unique id tag. I suck at javascript and can’t figure out what i’m doing wrong though.
Heres a link to a jsfiddle i’m trying to work on it with http://jsfiddle.net/XLuHU/6/
<a href='javascript:void;' onclick='return add_item("xyz", "Candy", "45.99", "#item_box1")'>Add Item to Box 1</a>
<br>
<a href='javascript:void;' onclick='return add_item("123", "Soda", "1.99", "#item_box2")'>Add Item to Box 2</a><br><br>
<div id='item_box1'></div><br><br>
<div id='item_box2'></div>
function add_item(code, title, price, divbox){
var idtag = "div_" + event.timeStamp;
if(divbox == "#item_box1")
{
var item_title = $("<input/>", {
type: 'text',
name: "box1_item_title[]",
value: title,
});
var item_price = $("<input/>", {
type: 'text',
name: "box1_item_price[]",
value: price,
});
var new_item = item_title + " - " + item_price;
}
else
{
var item_code = $("<input/>", {
type: 'text',
name: "box2_item_code[]",
value: code,
});
var item_title = $("<input/>", {
type: 'text',
name: "box2_item_title[]",
value: title,
});
var new_item = item_code + " - " + item_title;
}
$(divbox).append("<div id='"+idtag+"' ></div>");
$("#"+idtag).append(new_item);
};
First off this line is incorrect, event is not defined in this context:
This might work better:
Also this line will produce the wrong expected outcome, since your adding two objects together:
Also you have trailing commas in your object, which should have caused JS error, but didn’t seem to in the latest version of Chrome and Firefox.
Here is the working fiddle, which is aslightly modified version of the code below, due to the fact that ‘onclick=”return add_item…’ doesn’t seem to work in JSFiddle. It just give “add_item” is undefined.
However, something like this should work in a normal HTML document: