从W3schools的例子(不要对W3Schools做任何评论我只是用它作为一个例子).
选择选项如下所示:
假设我有两个具有相同名称的选项
现在,我想用jQuery实现,如果有人从第一个选择中选择了一个选项,他/她就无法从第二个选择中选择它.我怎么能做到这一点?即,如果在第一个选择中选择了沃尔沃,如何从第二个选择中自动删除沃尔沃?
如果使用jQuery是不可能的,那么如何使用PHP来阻止它呢?
我的猜测是使用array_unique:
foreach(array_unique($_POST['name']) as $name){
if (!empty($name)){
// do something
}
[发布问题后编辑]
最佳答案
小提琴:http://jsfiddle.net/jFMhP/
要完成所有选择,请使用以下JavaScript:
$('select').change(function() {
var myOpt = [];
$("select").each(function () {
myOpt.push($(this).val());
});
$("select").each(function () {
$(this).find("option").prop('hidden',false);
var sel = $(this);
$.each(myOpt,function(key,value) {
if((value != "") && (value != sel.val())) {
sel.find("option").filter('[value="' + value +'"]').prop('hidden',true);
}
});
});
});
这将从所有其他选择中删除选项.
替代选项
替代选项仅使用’命名’选择器jsFiddle:http://jsfiddle.net/jlawrence/HUkRa/2/
码:
$('select[name="name[]"]').change(function() {
var myName = '[name="name[]"]';
var myOpt = [];
$("select"+ myName).each(function () {
myOpt.push($(this).val());
});
$("select"+ myName).each(function () {
$(this).find("option").prop('hidden',true);
}
});
});
});