1

如何在一次选择中禁用多个选项。例如,我有 2 个选择,有 5 个和 3 个选项。因此,如果我在第二次选择中选择第三个选项,我想在第一次选择中禁用第三、第四和第五个选项:

<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();
4

2 回答 2

3

你可以隐藏它们:

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();
于 2013-04-17T20:05:56.597 回答
0

您也可以禁用它们:

var ary=[3,4,5];
$('[name=smjer] option').filter(function(){
    return ($.inArray(parseInt(this.value),ary) >-1);
}).prop('disabled', true);
于 2013-04-17T20:07:12.160 回答