select标签中的onchange事件!

时间:2011-04-06 19:50:03

标签: javascript onchange

如果我在菜单中更改选项,下面的代码应该在ParentSelect中给我1,但我得到的是0.有谁能告诉我这是什么错误?

<input type="hidden" name="ParentSelect" value="0" />
<select class="style" onchange="document.forms[0].elements['ParentSelect']=1" >
<option value="NULL">NULL</option>
...
</select>

这里,我在数据库中有两个表。它们包含一些字段,如ServerName等。

建议?

2 个答案:

答案 0 :(得分:4)

您直接将值1分配给属性document.forms[0].elements['ParentSelect'],而您可能意味着更改元素的值,这将实现如下:

document.forms[0].elements['ParentSelect'].value = 1

我同意其他一些关于缺乏有效HTML结构的评论,我想补充一点,如果您要通过document.forms[0]引用该字段,您也可以给该字段一个id属性,以便您可以简单地使用'document.getElementById`,这样无论页面上的其他表单如何,您的代码都可以正常工作。无论如何,使用您的方法,这里是完整的代码:

<form>
    <input type="hidden" name="ParentSelect" value="0" />
    <select class="style" onchange="document.forms[0].elements['ParentSelect'].value=1" >
        <option value="1">Value 1</option>
        <option value="2">Value 2</option>
    </select>
</form>

改为使用id:

<form>
    <input id="parentSelect" type="hidden" name="ParentSelect" value="0" />
    <select class="style" onchange="var e = document.getElementById('parentSelect'); if (e) e.value=1;" >
        <option value="1">Value 1</option>
        <option value="2">Value 2</option>
    </select>
</form>

答案 1 :(得分:3)

document.forms[0].elements['ParentSelect']返回整个输入,如果你想设置它的值使用

document.forms[0].elements['ParentSelect'].value = 1