Javascript onchange函数执行onload但不执行onchange

Javascript onchange function executes onload but not onchange

此表单 select 的 onchange 函数正在执行 onload,但在更改表单中的 selection 时不会执行。我试过同时使用 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);
}

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

我确定,并希望,这是愚蠢和愚蠢的事情,我一直盯着和调试同一个功能太久了...

求助!

您需要在线更改此

        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>

您的 Javascript 有:

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

window.onload 应更改为 window.onchange 并且它应该有效