JS:在启动时激活的Onchange事件

时间:2016-04-29 01:26:33

标签: javascript html

我有一个像这样的选择框:

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

&#34; onchange&#34;当我加载文件时,在启动时激活事件 - 但我希望仅在我的选择框项目发生更改时才激活事件。我怎么能这样做,或者我做错了什么......? &#34;重新加载&#34;函数位于文件的顶部,如果它可以帮助。提前谢谢。

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

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

EDIT2:我发现了一些东西。不知何故,与以下代码存在冲突。我首先尝试自己管理这个。

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

2 个答案:

答案 0 :(得分:0)

不确定为什么在您的情况下会触发onchange,默认情况下不应该触发。您可以在页面加载后通过bind 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>

答案 1 :(得分:0)

将以下代码放在<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>