Javascript 为文本字段指定id
我有一个表单,其中两个字段由一个下拉菜单生成。现在的问题是,我已经生成了一个字段,并试图获得两个字段,在第一个字段中显示价格,在第二个标记中显示产品标识。我的脚本只是显示价格,而不是id。由于缺乏知识,我被卡住了。我只是需要别人的帮助 JavaScript:Javascript 为文本字段指定id,javascript,html,Javascript,Html,我有一个表单,其中两个字段由一个下拉菜单生成。现在的问题是,我已经生成了一个字段,并试图获得两个字段,在第一个字段中显示价格,在第二个标记中显示产品标识。我的脚本只是显示价格,而不是id。由于缺乏知识,我被卡住了。我只是需要别人的帮助 JavaScript: function setOptions(chosen) { var selbox = document.myform.opttwo; selbox.options.length = 0; if (chosen ==
function setOptions(chosen) {
var selbox = document.myform.opttwo;
selbox.options.length = 0;
if (chosen == " ") {
selbox.options[selbox.options.length] = new Option('Please select one of the options above first',' '); }
selbox.options[selbox.options.length] = new Option('100 Directory Submission', '$9.99', '1');
selbox.options[selbox.options.length] = new Option('200 Directory Submission', '$19.99', '2');
selbox.options[selbox.options.length] = new Option('300 Directory Submission','$29.99', '3');
}
document.myform.amount.value="";
document.myform.hidden.value="";
}
HTML:
首先选择上述任一选项
应付金额:
产品标识:
首先,代码中存在一些明显的问题,例如闭合大括号和未闭合大括号
这一行中有一个例子:
if (chosen == " ") {
selbox.options[selbox.options.length] = new Option('Please select one of the options above first',' '); }
编辑:情况不再如此
其次,您尝试创建的Options对象没有您尝试获取的“id”属性
所以你的代码
selbox.options[selbox.options.length] = new Option('100 Directory Submission', '$9.99', '1');
未获取“1”作为其id
构造函数是
new Option([text], [value], [defaultSelected], [selected])
但是,您可以通过在onchange处理程序中执行以下操作来获取元素的索引:
this.form.hidden.value=this.selectedIndex;
第三,如果您想继续在onchange标记中使用script,这通常是不鼓励的,那么您还必须设置隐藏输入的值
像这样:
onchange="this.form.amount.value=this.value; this.form.hidden.value=this.value;"
注意:上面这行会给你错误的值,只是说,但你得到了它的要点
我做了一把小提琴让你在里面玩,看看是怎么做的
我相信一些API文档总是井然有序的:
更新:
为了在每个选项上动态设置id,必须循环选择列表中的元素,如下所示:
for (var i=0; i<selbox.length; i++){
selbox.options[i].setAttribute('id', 'hello'+i);
}
现在,当您选择一个选项时,您的输入应该显示“hello0”、“hello1”、“hello2”、“hello3”
还有,我为你更新了小提琴
如果(selected==“”){selbox.options[selbox.options.length]=new Option('请首先选择上面的选项之一','');}您必须稍后关闭它,而且您缺少一个表单,据我所知,您没有调用setOptions();从任何地方来。我为你做了一把小提琴,你可以用它来回答你的问题:错误只是不小心写出来的。在我的实际代码中没有任何内容。@limelights我看到了你的代码,但它也没有给我产品id。我更新了小提琴,粘贴了错误的url。对不起!我已经更新了小提琴以更好地反映我的答案!抱歉,这可能会造成混乱!你的工作很出色,但这不是我要找的。更新后的脚本只给出所选的索引号。我不想要索引号码,我需要打印我想要的号码。希望你能理解。是的,我理解,但由于你的代码是现在,你将无法做到这一点。您需要做的是以编程方式或硬编码方式为每个选项分配一个id。您正在使用的API不支持您所需的。那么,如何将id硬编码到javascript中的每个选项?如果我不能给出id,那么我可能会选择不同的方式来显示类似的结果。
for (var i=0; i<selbox.length; i++){
selbox.options[i].setAttribute('id', 'hello'+i);
}
this.form.hidden.value=this[selectedIndex].id;