Javascript onchange函数执行onload而不是onchange

问题描述 投票:2回答:2

这个表单select的onchange函数正在执行onload,但在更改表单中的选择时却没有。我尝试过使用onload和onclick。

我显然只是在调试实现阶段,一旦它工作,它会做其他的东西。

HTML:

<select case="sel1" name="Sort1" id="Sort1">
    <option value="0">Fred</option>
    <option value="1">Ginger</option>
    <option value="2">Judy</option>
    <option value="3">Gene</option>
</select>

JavaScript的:

window.onload = function() {
    document.getElementById('Sort1').onchange = ChgSort();
}

function ChgSort() {
    alert(document.getElementById('Sort1').value);
}

当我加载页面时,我得到当前选择值为0的警报弹出窗口。但是当我单击选择字段并更改选项时,没有任何反应。

我很有信心,并且希望,这是愚蠢和愚蠢的事情,我一直在盯着调试同样的功能太久了......

救命!

javascript forms dom onchange onload
2个回答
4
投票

你需要在线更改

        document.getElementById('Sort1').onchange = ChgSort();

对此

        document.getElementById('Sort1').onchange = ChgSort;

onchange应该是函数而不是返回值,请看下面的例子

window.onload = function() {
    document.getElementById('Sort1').onchange = ChgSort;
}

function ChgSort() {
    alert(document.getElementById('Sort1').value);
}
<select case="sel1" name="Sort1" id="Sort1">
    <option value="0">Fred</option>
    <option value="1">Ginger</option>
    <option value="2">Judy</option>
    <option value="3">Gene</option>
</select>

0
投票

你的Javascript有:

window.onload = function() {
    document.getElementById('Sort1').onchange = ChgSort();
}

window.onload应该更改为window.onchange,它应该工作

© www.soinside.com 2019 - 2024. All rights reserved.