jquery阻止<select>到第一个选项</select>

时间:2011-02-04 08:19:50

标签: jquery select

我有这样的代码:

<select name="aa">
    <option>a</option>
    <option>b</option>
    <option>c</option>
</select>

有一种方法可以停止打开我所有表单的选择并仅显示第一个只在此示例中选择 a

提前致谢 ciao h

4 个答案:

答案 0 :(得分:7)

删除:gt(0)过滤器(0)的所有其他选项是这样的索引:

 $("select[name='aa'] option:gt(0)").remove();

或者像这样禁用它们:

 $("select[name='aa'] option:gt(0)").attr("disabled", "disabled");

并选择:eq(0)过滤器(0)的项目就是这样的索引:

 $("select[name='aa'] option:eq(0)").attr("selected", "selected");

可以使用:not过滤器完成相反的操作:

$("select[name='aa'] :not(option:gt(0))").attr("disabled", "disabled");

:lt过滤器:

$("select[name='aa'] option:lt(1)").attr("disabled", "disabled");

只需指定一个空字符串.attr("disabled", "");.attr("selected", "");即可删除属性设置。

<强> fiddle here

翻转/翻转值我认为你需要第二个(隐藏)选择:

<强> fiddle here

// hide items
var src = $("select[name='aa'] option:eq(0)");
var tar = $("select[name='ab']").hide();

tar.append(src.clone())
src.remove();


//reshow items:
src = $("select[name='ab'] option:eq(0)");
tar = $("select[name='aa']")

tar.prepend(src.clone())
src.remove(); 

答案 1 :(得分:1)

什么?你的意思是选择默认选项?尝试在选项

上使用所选属性
<option selected>a</option>

或使选项无法选择:

<option disabled>a</option>

答案 2 :(得分:1)

你可以这样做:

$("select[name='aa']").val($("select[name='aa'] option:first").val());

答案 3 :(得分:1)

您可以禁用您不希望被选中的那些,或者您可以改变他们的CSS显示,如:

$('select[name="aa"] option').not(':first').css('display','none');

如果你想自动设置一个“默认”值并且不让任何人改变它,你可以设置第一个值,然后禁用整个select元素,这样就没有人改变它:

$('select[name="aa"]')
    // set the value of the first option
    .val($('select[name="aa"] option:first').val())
    // disable the select element so that no one can alter it's value
    .attr('disabled','disabled');