Как отключить несколько вариантов выбора

Как отключить несколько опций в одном select. Например, у меня есть 2 выбора с 5 и 3 вариантами. Итак, если я выберу 3-й вариант во втором выборе, я хочу отключить 3-й, 4-й и 5-й вариант в первом выборе:

<select name="smjer">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>

Второй выбор:

<select name="godina" >
<option value="1" >1.</option>
<option value="2" >2.</option>
<option value="3">3.</option>
</select>

Я пытался удалить параметры, но потом не могу получить их без обновления страницы:

var ary=[3,4,5];
$('[name=smjer] option').filter(function(){
    return ($.inArray(parseInt(this.value),ary) >-1);
}).remove();

person Ivan Pandžić    schedule 17.04.2013    source источник
comment
Ну, ты .remove их трахаешь. Вы не ожидали, что они исчезнут?   -  person cHao    schedule 18.04.2013
comment
использовать показать/скрыть вместо удаления   -  person Huangism    schedule 18.04.2013


Ответы (2)


Вы можете просто скрыть их:

var ary = [3, 4, 5];
$('[name=smjer] option').filter(function () {
    return ($.inArray(parseInt(this.value), ary) > -1);
}).hide();

и когда снова требуется показать это:

var ary = [3, 4, 5];
$('[name=smjer] option').filter(function () {
    return ($.inArray(parseInt(this.value), ary) > -1);
}).show();

Чтобы сделать его еще лучше, вы можете сделать это:

var ary = [3, 4, 5];

// Get the options to be hidden/shown
var $options = $('[name=smjer] option').filter(function () {
    return ($.inArray(parseInt(this.value), ary) > -1);
});

// Hide the options
$options.hide();

// Show the options
$options.show();
person palaѕн    schedule 17.04.2013

Также вы можете отключить их:

var ary=[3,4,5];
$('[name=smjer] option').filter(function(){
    return ($.inArray(parseInt(this.value),ary) >-1);
}).prop('disabled', true);
person saidozcan    schedule 17.04.2013
comment
.disabled="disabled", вероятно, не делает того, что вы думаете. Вместо этого попробуйте .prop('disabled', true). Конечно, тогда вам все равно придется беспокоиться о их повторном включении, когда значение другого поля выбора изменится... - person cHao; 18.04.2013
comment
@nnnnnn: все браузеры, которые стоят выеденного яйца. disabled является стандартным атрибутом элементов <option> и отображается как устанавливаемое свойство DOM. Ссылки, которые я вижу, говорят, что все браузеры поддерживают это. - person cHao; 18.04.2013