【问题标题】:onchange event in select tag!选择标签中的 onchange 事件!
【发布时间】:2011-04-06 19:50:02
【问题描述】:

如果我更改菜单中的选项,以下代码应该在 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 等。

建议?

【问题讨论】:

  • 现在可以看到我的代码了吗?

标签: javascript onchange


【解决方案1】:

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

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

我同意其他一些关于缺乏有效 HTML 结构的 cmets,我想补充一点,如果您要通过 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>

【讨论】:

  • 作为对现已删除的评论的回应:我必须对此进行测试以验证这在所有浏览器中都是正确的,但我很确定你会得到第一个使用给定 ID 的元素(您可以在我非常熟悉的任何浏览器中使用)。为了使这段代码更灵活,出于这个原因,我根本不会使用这种方法。你最好做类似this.form.elements['ParentSelect'].value = 1的事情——如果你要坚持使用内联脚本。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2013-01-04
    • 2020-03-09
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    相关资源
    最近更新 更多