Javascript onchange函数执行onload而不是onchange

时间:2017-12-29 17:46:22

标签: javascript forms dom onchange onload

此表单选择的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的警告弹出窗口。但是当我点击选择字段并更改选项时没有任何反应。

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

帮助!

2 个答案:

答案 0 :(得分:4)

您需要在线更改

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

到这个

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

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

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

function ChgSort() {
    alert(document.getElementById('Sort1').value);
}
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您的Javascript有:

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

window.onload应更改为window.onchange,它应该可以正常工作