选择输入排序

时间:2012-07-24 17:32:36

标签: jquery html

所以我有3个选择输入字段,我想知道是否可以在选择后禁用其他选项。即:

<tr id="row1">
    <th>Row 1</th>
    <td>
        <select>
            <option value="1">1</option>
            <option value="2" selected>2 selected so 1+3 are disabled</option>
            <option value="3">3</option>
        </select>
    </td>
</tr>

<tr id="row2">
    <th>Row 2</th>
    <td>
        <select>
            <option value="1" selected>1 selected 2+3 are disabled</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </td>
</tr>

<tr id="row3">
    <th>Row 3</th>
    <td>
        <select>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3" selected>3 (you get it...)</option>
        </select>
    </td>
</tr>

3 个答案:

答案 0 :(得分:2)

试试这个:

$('select').change(function(){
    $(this).find('option:not(:selected)').prop('disabled', true)
})

Demo

答案 1 :(得分:2)

您可以将onchange事件绑定到select。然后选择未选择哪些选项元素并禁用此选项。如果您已经熟悉jQuery,可以这样做:

$("select").bind("change", function(){
        $(this).children("option:not(:selected)").attr("disabled", "disabled");
    });

答案 2 :(得分:0)

禁用其他选项会阻止用户更改其选择,因此只需使用javascript删除所有其他选项。

快速,肮脏的方式是

<select onchange='for(vari=0, l=this.options.length; i<l; i++){ if(this.options[i].selected) continue; this.remove(i); }'>

不需要Jquery。但是,我不会建议将javascript与html混合,除非你没有任何其他可以输入的外部javascript并将其作为这些特定select语句的处理程序应用。