Suggest:
Features:
- 提示补全基本功能
- 完全跨域
- 小巧精简,仅依赖 ks-core, 压缩后不超过 9k
- 支持所有 A 级浏览器
- cache 功能
- 支持键盘控制:上下选择及回车后直接提交,ESC 键关闭
- 支持鼠标控制:鼠标选择和点击提交功能
- [DELAY] 支持匹配文字加亮
- [DELAY] 动画效果
- [DELAY] 在提示层中显示第一个搜索结果
- [DELAY] 整合本地表单的提示记录
- [DELAY] 关键词的模糊匹配提示功能
Test Cases:
- 基本功能:输入时有提示,键盘操作,鼠标操作,点击提交按钮可正常提交
- 用 Del 或 Backspace 键将输入清空时,提示层隐藏
- 当返回结果为空时,提示层隐藏
- 点击提示层外面,能关闭提示层
- ESC 键能关闭提示层。并且当有选中项时,再次打开能还原输入值
- 鼠标悬浮在提示层,继续输入时,取消选中项
- 服务器超慢的处理(抛弃旧请求,只显示最新结果)
- 鼠标选中某项 + 点击 or 键盘选中某项 + 回车 时,会触发 itemSelect
- 先用鼠标选中某项,然后从侧边绕过提示层移动到输入框,ENTER 提交,不触发 itemSelect
- 服务器超时和返回错误数据时的容错
- 鼠标点击选中,触发表单提交时,能触发 form 的 onsubmit 事件
- ie6 下,能覆盖 select
- 在主流输入法开启时测试
- 在所有 A 级浏览器下测试
- 持续按下 DOWN/UP 键时,选中操作流畅自然(注意 Opera 下无效)
- 在提示层任意处按下鼠标,保持按住状态,移动到提示层外释放鼠标,这时输入框应该保持 focus 状态
- 在提示层 A 项处按下鼠标,移动到 B 处释放,不触发 itemSelect
- 在提示层 A 项处按下鼠标,移动鼠标到其它地方,最后移动回 A 处释放,触发 itemSelect
- 输入法开启,通过 enter 键输入英文时,不会触发提交
- 选中某项,ESC 键关闭,再次通过 keydown 打开时,能保持原来的选中项
- 没有选中项,ESC 键关闭,再次通过 keydown 打开时,依旧没有选中项
- 当输入框为空时,按下 PgDn/PgUp/Home/End/Down/Up 键,输入框失去焦点,页面正常响应控制键
- onresize 时,位置能自动调整
- 输入框处于焦点,点击 footer 区域,比如 同店购 三个字,提示层不会关闭
- 输入框处于焦点,点击 footer 区域的输入框,提示层不会关闭
- 切花 footer 区域的输入框焦点,提示层不会关闭
- footer 区域的输入框聚焦时,点击提示层外面,提示层关闭
- 提示层打开时,点击 iframe 区域,提示层关闭
- 在提示层点击右键,不会触发关闭或表单提交等操作
- input 框的宽度动态改变时,提示层显示时宽度自动自适应
- webkit 下,在输入框中输入文字,按下 UP 键,光标不会跳动到最前面去
Crazy Test:
dataBeforeRequest 和 dataReturn 事件:( 请输入 pig 和 dog )
beforeShow 和 itemSelect 事件:
beforeStart 事件 和 beforeSubmit 事件:
测试提示层宽度和遮罩:
有啊有啊哈哈哈: