Selectbox隐藏下拉列表中的第一个选项条目?

时间:2011-10-18 07:58:23

标签: javascript jquery html forms

当用户点击下拉框以查看选项时,是否可以隐藏第一个选项,即<option>Select One</option>。因此,选择一个文本不会出现在列表

5 个答案:

答案 0 :(得分:7)

由于没有可靠的跨浏览器隐藏option元素的方法,最好的办法是将其删除focus并在blur上再次添加:

jQuery(document).ready(function () {
    var first = jQuery('#myselect').find('option').first();
    jQuery('#myselect').on('focus', function (e) {
        first.remove();
    }).on('blur', function (e) {
        jQuery(this).find('option').first().before(first);
    });
});

这是working example

答案 1 :(得分:6)

当select打开时,您可以使用纯HTML隐藏第一个元素选项:

<select name="list">
    <option selected="selected" hidden>First Element</option>
    <option>Second Element</option>
    <option>Third Element</option>

</select>

这是工作小提琴: https://jsfiddle.net/sujan_mhrzn/y5kxtkc6/

答案 2 :(得分:3)

作为一个快速的CSS选项,你可以给下拉列表一个id然后

#cat option:first-child {
 display: none;
 } 

以上使用#cat作为下拉列表的ID

Tutorial for this solution

答案 3 :(得分:1)

唯一的跨浏览器方法是完全删除它。简单地说'JS:

var sel = document.getElementById("mySelect");
sel.onfocus = function () {
    select.onfocus = null;
    sel.removeChild(sel.firstChild);
}

jQuery的:

$("#mySelect").focus(function () { 
    $(this).remove(this.firstChild).unbind(arguments.callee); 
});

答案 4 :(得分:0)

如果要删除该选项,则简单代码为:

var mySelect = document.getElementById('mySelect');

mySelect.onfocus = function() { mySelect.removeChild(mySelect.options[0]); }

其中mySelect是选择框的ID。

编辑:我更改了代码以附加焦点事件的事件侦听器。但是,此代码会删除您选择选择框时的第一个选项时间。很确定这不是你需要的。您可以使用onblur再次附加选项,但我不知道这是否是您需要的。请说明你想做什么。