【发布时间】:2014-07-01 20:52:22
【问题描述】:
我有两个表单,在表单1中,当用户选择单选按钮时,在文本框中输入值并单击添加到列表按钮,(单选按钮的文本+文本框的值)应该被添加到表单2的列表框中。
我编写了 javascript 函数来添加项目并将脚本包含在两种表单中,即在 form1 中,该函数被触发为添加到列表按钮的 onclick 事件和 form2 中的 body 标签 onload 事件。
但它不起作用,任何人都可以在这方面提供帮助,因为我是 javascript 新手。
Form1:
<form name="orderform">
Category:
<input type="radio" name="category" id="category" value="0">Apple</input>
<input type="radio" name="category" id="category" value="1">Orange</input>
<input type="radio" name="category" id="category" value="2">Banana</input>
<input type="radio" name="category" id="category" value="3">Guava</input>
<br>
Item: <input type="text" length="30" name="item" id="item"/>
<br>
<input type="button" name="add" value="Add to List" onClick="addItem_list()"/>
</form>
Form2:
<body onload="addItem_list()">
<form name="items">
Items <SELECT name="item_list" id="item_list">
<option value="">Select item</option>
</SELECT>
Javascript:
function addItem(selectbox,text,value )
{
var item = document.createElement("OPTION");
item.text = text;
item.value = value;
selectbox.options.add(item);
}
function addItem_list(){
var it=document.orderform.item.value; //getting item value from textbox
//To determine which radio button has been selected:
for (var i=0; i<document.orderform.category.length; i++)
{
if (document.orderform.category[i].checked==true)
{
var y = orderform.category[i].value;
}
}
var val=y+" "+it;
addItem(document.items.item_list,val,val);
}
【问题讨论】:
-
在加载时运行时,用户还没有机会填写输入字段。
-
他也无法检查任何单选按钮。您希望这在
onload案例中如何工作? -
您不应该重复使用 ID,它们应该是唯一的。如果您没有将 ID 用于任何用途,只需将它们排除在外。
-
在
onclick情况下可以正常工作:jsfiddle.net/barmar/d5U7u -
非常真实,绝不重复使用 ID
标签: javascript