JS:Onchange事件在启动时激活

JS : Onchange event activated at startup

本文关键字:启动 激活 事件 Onchange JS      更新时间:2023-09-26

我有一个这样的选择框:

<select id="param2" name="param2" onchange="reload();">
<option value="sth">sth</option>
<option value="sth2">sth2</option>
</select>

当我加载文件时,"onchange"事件在启动时被激活,但我希望只有当我的选择框项目发生更改时才激活该事件。我该怎么做,或者我做错了什么?如果可以的话,"重载"功能位于文件的顶部。提前谢谢。

编辑:我使用Firefox版本45&JQuery 1.7。这是JS代码,现在只显示值:

<script>
function reload() {
    var v1 = document.getElementById('param1').value;var v2 = document.getElementById('param2').value;
    alert(v1 + " "+ v2);}
</script>

第二版:我发现了一些东西。不知怎的,与以下代码发生了冲突。首先,我会设法自己解决这个问题。

<script>
  $(function () {
    $('select#param1').listbox();
    $('select#param2').listbox();
  });
</script>

将以下代码放在<script></script>标签之间

$( document ).ready(function() {
    $('#param2').on('change', function(){
        reload();
        }); 
});

同时更改您的html以删除那里的onchange表单

<select id="param2" name="param2">
<option value="sth">sth</option>
<option value="sth2">sth2</option>
</select>

不确定在您的情况下触发onchange的原因,默认情况下不应该触发它。您可以简单地通过在页面加载后绑定onchange事件来修复它

<script src="path to your jquery"/>
<script>
    $(function(){
        // will be run after html document has been loaded.
        $('#param2').on('change', function(){
            reload();
        });
    }); 
<script>

问题更新后添加,

<script>
$(function () {
    $('select#param1').listbox();
    $('select#param2').listbox();
    $('#param2').on('change', function(){
        reload();
    });
});
</script>