datalist是HTML5的元素,可以帮助input元素实现选择性输入。例如Google的搜索框,每一个输入时间都将处罚一次ajax请求,得到最新的搜索结果,放入下拉框中供用户选择。

datalist和selector很相似,区别是前者除了可以选择,还可以输入。但是在使用上,datalist却有很大的区别,主要在事件的注册上。

input文本变化的事件: oninput

<input type="text" value="" list="mylist" oninput="alert('就不让你输入")' />
<datalist visible id='mylist' >
  <option value='1' selected>1-text</option>
  <option value='2'>2-text</option>
  <option value='3'>3-text</option>
</datalist>

datalist选择事件:onchange(注册在input而不是datalist上)

<input type="text" value="" list="mylist" onchange='alert("选中了哦")'/>
<datalist visible id='mylist' >
  <option value='1' selected>1-text</option>
  <option value='2'>2-text</option>
  <option value='3'>3-text</option>
</datalist>