获取正在传递的字段的名称

时间:2010-10-12 17:48:13

标签: javascript

我有两组列表(状态列表) 一个叫做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

如何确定选择字段名称?

谢谢!

5 个答案:

答案 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.idsel.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>