最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - how to call change event like select on html datalist - Stack Overflow

programmeradmin3浏览0评论

I want to create an event that fires on a change, so I can create something like a <select> tag, but my code is not working with a <datalist>.

This is my HTML:

<input type="text" name="team" id="favorite_team" list="team_list">
<datalist id="team_list">
  <option>Detroit Lions</option>
  <option>Detroit Pistons</option>
  <option>Detroit Red Wings</option>
  <option>Detroit Tigers</option>
</datalist>

And this is my JQuery code:

$('#favorite_team').on('change', function(){    
      alert($(this).val());
});

I want to create an event that fires on a change, so I can create something like a <select> tag, but my code is not working with a <datalist>.

This is my HTML:

<input type="text" name="team" id="favorite_team" list="team_list">
<datalist id="team_list">
  <option>Detroit Lions</option>
  <option>Detroit Pistons</option>
  <option>Detroit Red Wings</option>
  <option>Detroit Tigers</option>
</datalist>

And this is my JQuery code:

$('#favorite_team').on('change', function(){    
      alert($(this).val());
});
Share Improve this question edited Mar 17, 2015 at 13:15 asked Mar 17, 2015 at 12:29 user2166164user2166164
Add a ment  | 

2 Answers 2

Reset to default 3

Your selector is wrong, change the id of your input to favorite or try this code:

$('#favorite_team').on('input', function(){    
      alert($(this).val());
});

You can add the loop to judge the option which is in the list.

$('#favorite_team').on('input', function(){
    var options = $('datalist')[0].options;
    for (var i=0;i<options.length;i++){
       if (options[i].value == $(this).val()) 
         {alert($(this).val());break;}
    }
});

JSFiddle

发布评论

评论列表(0)

  1. 暂无评论