跨浏览器问题 - jquery don#39; t显示select的第一个条目

时间:2014-03-15 17:22:21

标签: javascript jquery html

我在搜索表单中输入了这个选择框:

<select name="searchFor" id="searchFor">
 <option name="option0" value="Choice">Pick one</option>
 <option name="option1" value="person">Person</option>
 <option name="option2" value="title">Title</option>
</select>

因为top选项不应该是可选的,所以我使用JQuery删除它:

$("#searchFor").focus(function() {
  $(this).find("option").eq(0).remove();
});

除了Internet Explorer的外景之外,它就像魅力一样。 在所有浏览器中,选择select-tag时将删除option0。 在IE中,仅在选择其中一个选项后才会删除该选项。这让你总是选错了。 该动作也会重复,直到所有选项都消失。

任何人都知道如何在IE中使用它?

因此,当select被激活时,应该从select-tag中删除top-option。

欢呼声

2 个答案:

答案 0 :(得分:0)

解除像这样的焦点事件

$("#searchFor").on('change',function() {
  $(this).find("option").eq(0).remove();
  $(this).off('change');
});

Fiddle Demo

答案 1 :(得分:0)

尝试以下操作,使用&#34; focusin&#34; event和one()函数使事件处理程序只运行一次。

$("#searchFor").one("focusin", function() {
  $(this).find("option").eq(0).remove();
});