jquery selectbox:如果选择了最后一个选项,则使用其他下拉值重新加载Jquery Selectbox

时间:2012-03-19 13:17:56

标签: jquery jquery-ui jquery-selectbox

如果使用新值选择最后一个选项,如何刷新jquery multiselect? 就像我在选择框中有以下选项

<select id="positions">
    <option value="0">Programmer</option>
    <option value="1">Tester</option>
    <option value="2">Manager</option>
    <option value="3">Admin</option>
    <option value="4">Load all other</option>    
</select>

如果用户从选择框中选择“加载所有其他”选项,则应使用不同的值重新初始化此选择框。 或者是否可以在一个选择框中填充两个使用粗线分隔的拖放值。

3 个答案:

答案 0 :(得分:1)

我想我明白你的意思。这会诀窍吗?

$('#positions').change(function() {
    if ($('#positions').val() === '4') {
        var newOptions = '<option value="0">Programmer</option>';
        newOptions += '<option value="1">Tester</option>';
        newOptions += '<option value="2">Manager</option>';
        newOptions += '<option value="3">Admin</option>';
        newOptions += '<option value="5">Helicopter Pilot</option>';
        newOptions += '<option value="6">Fireman</option>';
        newOptions += '<option value="7">President of the United States</option>';
        $('#positions').html(newOptions);
    }        
});​

答案 1 :(得分:1)

HTML部分:

<select id="positions">
    <option value="0">Programmer</option>
    <option value="1">Tester</option>
    <option value="2">Manager</option>
    <option value="3">Admin</option>
    <option value="4">Load all other</option>    
</select>

<select id="positions2">
    <option value="0">test1</option>
    <option value="1">test2</option>
    <option value="2">test3</option>
    <option value="3">test4</option>
    <option value="4">Load all other</option>    
</select>

Jquery Part:

$('#positions').change(function() {
    if ($('#positions').val() == 4) {
        var data = $('#positions2').html();
        $('#positions').html(data );
    }
});

以下是Jsfiddle示例:

答案 2 :(得分:0)

使用其他selectBox

中的值加载$('#position')
$('#positions').html( $('#otherSelectBox').html() );

但如果同一个用户仍想查看之前的选择怎么办?我认为你应该只用下一个值附加$('#position')并隐藏prev

$('#positions').children('option').hide().end().append( $('#otherSelectBox').html() );