私はこの例を持っています:
_<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Google Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
_
ユーザーがオプション(マウスまたはキーボードを使用)を選択したときに、イベントをキャッチする必要があります。
onchange="MySuperFunction();"
を実行しようとしましたが、これはアイテムが選択され、リストにフォーカスがない場合にのみ機能します。
input
イベントは、必要なものに対して機能するはずです。私が理解しているように、データリストを直接使用することはできませんが、データリストはlist
属性によって入力に接続されています。このイベントバインディングは、その入力で行われます。
document.getElementById('browsers-input').addEventListener('input', function () {
console.log('changed');
});
JQueryスタイルを使用して「ExplosionPills」ソリューションと同じ効果を得るには:
$("#browsers-input").on("input", MySuperFunction);
UsinjQuery
使用できます.change
http://jquery.com/
$('datalist#browsers').change(MySuperFunction);
または
$('datalist#browsers').change(function(){
// stuff
});