我有一个像这样的选择框:
<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>
答案 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>