JavaScript onchange自行运行
javascript onchange running by itself
我对javascript函数有问题。当页面加载时,即使它设置为运行 .onchange ,它也会自行运行
我有一个看起来像这样的选择:
<select name="make_brand" id="make_brand" class="form_tag dispB width_full">
<option value="" selected disabled>Please select</option>
<option value="1">Audi</option>
<option value="2">BMW</option>
<option value="3">Mercedes-Benz</option>
</select>
我的js看起来像这样:
// defining select fields
var brand = document.getElementById("make_brand");
// get values
function getSelectedValue(element, show_mark){
return element.options[element.selectedIndex].value;
}
// on select change
brand.onchange = getSelectedValue(brand, true);
当我刷新页面时,该功能会自动运行,我不知道为什么。谁能帮我解决这个问题?我希望函数在选择更改时运行。
您的代码正在运行您的getSelectedValue
函数,然后将设置brand.onchange
设置为它的返回值。只有在不需要参数的情况下,才能以这种方式设置事件处理程序。
有两个选项可用于将参数传递给 dom 元素事件:
你可以像这样创建一个匿名函数:
brand.onchange = function(event){
return getSelectedValue(event.target, true);
}
或者,您可以直接将事件添加到 html 元素中:
<select name="make_brand" onchange="getSelectedValue(this,true)" ...
这应该可以...
<html>
<head>
<script>
function init(){
var brand = document.getElementById("make_brand");
// on select change
brand.addEventListener("change", function(){getSelectedValue(brand, true)});
}
// get values
function getSelectedValue(element, show_mark){
return element.options[element.selectedIndex].value;
}
</script>
</head>
<body onLoad = "init()">
<select name="make_brand" id="make_brand" class="form_tag dispB width_full">
<option value="" selected disabled>Please select</option>
<option value="1">Audi</option>
<option value="2">BMW</option>
<option value="3">Mercedes-Benz</option>
</select>
</body>
</html>
在向文档中的元素添加侦听器之前,必须让文档加载。注意 body 标签,我在 onLoad 中调用了我的 init() 函数。
brand.onchange 应该是这样的函数: brand.onchange = function(event){
getSelectedValue(brand, true);
}
相关文章:
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 使用压缩的JavaScript文件(不是运行时压缩)
- Javascript运行php文件,然后下载文件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 如果onchange为true,如何运行函数
- 根据其他onchange函数来选择在onchange中运行哪个函数
- 根据正在运行的函数,在onchange()事件中选择函数
- 运行一个js函数onchange()
- 在for循环中触发onchange事件只运行一次
- JavaScript onchange自行运行
- onChange 事件无法使用 iCheck 插件运行
- 输入隐藏don't运行onChange事件
- onchange正在运行,但选择不更改的值
- Javascript运行在onChange而不是onLoad
- 获取jQuery选择菜单的值并运行javascript onchange
- 如果所选框已被选中,则加载页面时如何运行onchange函数
- Onchange选择运行功能
- 如何防止在单击提交时运行表单中的onchange
- 为表- MVC中的每一行运行OnChange事件
- AJAX 在页面加载之前运行 onchange 事件