【发布时间】:2017-07-25 21:05:28
【问题描述】:
我有这样的表格:
<input list='data-list' id='list'>
<datalist id='data-list'>
<option>first</option>
<option>second</option>
</datalist>
用户可以从数据列表中选择一个项目 - 或者 - 可以输入它自己的值。我通过对 PHP 脚本的 JSON 调用连接到数据库,以在表单的其余部分填写其他信息。我希望当用户在列表输入中键入名称(因此当内容模糊时)或当用户单击 datalist 中的选项时触发。
使用$( ':input#list' ).on( 'change', function...当输入丢失焦点时触发函数,但选择来自数据列表的项目时,它还等待'直到输入丢失焦点,我希望将事件直接射击
使用$( ':input#list' ).on( 'input', function...单击数据列表中的一个项目会立即触发该功能,这正是我想要的,但键入也会触发该事件,每次击键都会向我的 PHP 脚本发送大量不需要的请求。
我尝试将事件直接绑定到数据列表,但没有成功。
我希望在用户单击(或使用键盘选择)数据列表中的项目或用户输入单词并移至下一个输入时触发该功能。
【问题讨论】:
-
使用
$( ':input#list' ).on( 'input', function...时,您可以在发送另一个请求之前插入延迟,并检查延迟时输入值是否仍然相同 -
Scott,这仍然会在每次击键时触发事件,这是我试图避免的事情。我确实在stackoverflow.com/questions/30022728/… 上找到了一个有趣的解决方案,它基本上只在用户输入的输入也在数据列表中时才进行 JSON 调用,此外,我可以在尚未调用“更改”时调用它......我还看到该链接指向可能是“重复问题”,所以我可能会删除/关闭这个
标签: jquery html html-datalist