我有两组列表(状态列表) 一个叫做state_o,一个叫做state_d,我有一个函数我做了
function selectCountry(sel) {
document.getElementById("country_o").selectedIndex = states[sel.value];
}
现在我要做的是确定“sel”是state_o还是state_d,并根据选择的状态将getElementById(“country_o”)更改为_o或_d,因此state_o将执行country_o和state_d将执行的操作country_d
如何确定选择字段名称?
谢谢!
答案 0 :(得分:2)
您可以通过javascript访问name属性:
function selectCountry(sel) {
var od = sel.name == "state_o" ? "o" : "d";
document.getElementById("country_"+od).selectedIndex = states[sel.value];
}
或者,如果你想要有点发烧友并将它保持在一条线上,请直接从名称字符串中切出o / d:
function selectCountry(sel) {
document.getElementById("country_"+sel.name.slice(-1)).selectedIndex = states[sel.value];
}
答案 1 :(得分:0)
在此函数中保留另一个参数以查看其_o或_d是否在调用函数中设置此值。 然后在您的javascript方法中,您可以通过 -
呼叫国家/地区document.getElementById("country" + param2)
假设param2是附加参数,它将包含字符串“_o”或“_d”
答案 2 :(得分:0)
如果我理解你的问题,那就是:
var field;
if (sel.value == 'state_o')
field = 'country_o';
else
field = 'country_d';
document.getElementById(field).selectedIndex = states[sel.value];
答案 3 :(得分:0)
如果sel
是选择元素,sel.id
或sel.name
应该为您提供所需内容。
答案 4 :(得分:-1)
如果您使用的是jQuery,请使用sel.attr('name')
;如果只使用普通的旧Javascript,则使用sel.name
假设你有:
<SELECT name='state_o'>
<OPTION value='blah'>BLAH</OPTION>
</SELECT>
<SELECT name='state_d'>
<OPTION value='blah'>BLAH</OPTION>
</SELECT>