网页下拉框往往需要一些个性化的定制,这个时候用JQuery中的Autocomplete就会出现许多比较复杂的情况,今天这个案例可以说是比较全面地应用到了Autocomplete中的各种参数和选项,值得记录一下。
需求
①页面中有多个并列的input (type=”text”) 控件,控件动态生成,只有类名标识(.txtName)
②这些控件的数据源相同,当其中一个控件选择一项后,其他控件就不能选择相同项
③出现下拉列表后,可以使用鼠标点击、方向键加Enter或Tab键,这3种方式选择,并且选择后,光标移动到文本最左侧
④页面初始化后,可能在一部分文本框有默认值,这取决于数据源
⑤用户输入错误数据时能提示并强制定位到该数据上
以下是代码以及解析
1 | function GetUsers() { |
需要注意以下两点
①控件的Blur事件和Autocomplete的change事件各有其用处,不能互相代替。Blur在选择下拉框中的内容时就会触发一次,所以对上一个文本框的操作不能在Blur中进行;而change事件只有在文本框焦点移开并且初始内容和最终内容不相同时才能触发,比如当选择了一项然后又删除了,就不会触发该事件
②Autocomplete的事件执行顺序是
create→search→response→open→focus→select→close→change
最后附上Api文档Autocomplete Api