我的php页面中有一个列表菜单。在此列表菜单中,我有一个onChange事件,您可以在下面看到。
<select name="company" onChange="getproduct(this)">
以上活动获取所选公司的产品名称。但现在我想将此列表菜单更改为自动完成。我尝试下面的代码,但它没有取任何东西,任何人都可以帮助我PLZ
<input type="text" name="company" id="company" onkeyup="getproduct(this)"/>
答案 0 :(得分:4)
一般来说,对javascript事件使用html属性是不好的做法。既然你正在使用jQuery,你应该在外部脚本中做这样的事情:
$('#company').on('change keyup input', function() { getproduct(this); });
我现在就把它分解。
$('#company')
选择ID为“company”的元素。这允许您通过更改它或附加事件侦听器来使用javascript处理该对象。
.on(...)
将事件侦听器附加到所选对象。它可以以几种不同的方式使用,但最基本的方式(这是我们在这里使用它的方式),它需要两个参数,第一个是要侦听的空格分隔的事件列表,第二个是回调函数在所选元素上发生这些事件时执行。
change
是当input元素更改其值然后失去焦点时触发的事件。如果用户没有通过键入来更改输入(可能通过上下文菜单粘贴),这可能是一个有用的事件。
keyup
是按下然后释放按键时触发的事件。另请参阅keydown
和keypress
。
input
是一个很酷的新HTML5事件,旨在侦听元素上的用户输入。这一点很重要,因为它是专为您要完成的工作而设计的。 (值得注意的是,当在数字输入类型上单击微调箭头按钮时会触发输入事件。)如果用户的浏览器不支持输入事件,您仍然希望将其他事件用作回退。
答案 1 :(得分:1)
$('#company').change(function(){
getproduct(this);
});
这是.change事件http://api.jquery.com/change/
的jquery文档的链接