我有2个选择,我想根据第二个选择的值,从第一个值中删除。例如:如果我从第二个选择中选择值1和2,我希望2,3,4,5的值被隐藏,如果在第二个选择值中是3,我想隐藏1,2,3值:隐藏和显示多个选择
选择一:
<select name="select1">
<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="select2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
这是藏在被1或2个的情况下的代码:
var ary=[2,3,4,5];
$('[name=select1] option').filter(function(){
return ($.inArray(parseInt(this.value),ary) >-1);}).hide();
此代码适用于隐藏,但我遇到问题。当代码将2,3,4,5隐藏在值1和2上时,在第二选择中选择值3仅显示值1,因为其他隐藏。我用show()解决了这个问题。然后2,3,4,5的表现,但我不能隐藏值1,因为返回://我尝试这样做,它不会工作:
var ary=[4,5];
var ary2=[1];
$('[name=select1] option').filter(function(){
return ($.inArray(parseInt(this.value),ary) >-1);}).hide()&&($.inArray(parseInt(this.value),arry2) >-1);}).show();
我也试图调用另一个函数它会一直刷新select1,显示所有的值,并且在这个函数中只使用了隐藏,我认为这将是正确的方式,但我不知道如何解决它?
我不知道我遵循这个题。你只想显示在'select2'中选择的'select1'中的元素?你能再解释一下吗? –
我认为你可以使用[jQuery级联](http://archive.plugins.jquery.com/project/ cascade),只需切换每个下拉列表中可用的选项集。 – lavrik
@RocketHazmat我只想删除select1上的值。如果选择2上的选定值是1或2我想隐藏值2,3,4,5形式选择1。如果select2上的选定值是3,我想删除值1,2,3。 –