我有各种下拉列表,如果我们选择第一项不应该显示在第二个下拉列表中,我已经编写了jquery,如
$(document).ready(function() {
$('.ddlProjectvalue').change(function() {
updateDDLValues();
});
});
function updateDDLValues() {
// Display all
$('.ddlProjectvalue option').show();
// Hide all selected options from other selectlists
$('.ddlProjectvalue').each(function(i,element) {
var selectedvalue = $(element).find('option:selected').val();
$('.ddlProjectvalue').not(element).find('option[value="'+selectedvalue+'"]').hide();
});
}
你可以查看jsfiddle.net,它在chrome和firefox中运行正常,但在Internet Explorer中无法正常工作,有什么问题?
答案 0 :(得分:1)
似乎大多数浏览器都不允许隐藏< option>。我认为要走的路是删除< option>共
答案 1 :(得分:1)
我发现了问题,此行元素中的$(element).find('option:selected').val()
在IE中未定义,而在Chrome中,正确的值即将到来
答案 2 :(得分:0)
此功能仅适用于Internet Explorer
function updateDDLValues() {
// Display all
$('.ddlProjectvalue span option').unwrap();
// Hide all selected options from other selectlists
$('.ddlProjectvalue').each(function (i, element) {
var selectedvalue = $(element).find('option:selected').val();
$('.ddlProjectvalue').not(element).find('option[value="' + selectedvalue + '"]').wrap('<span style="display: none;">');
});
}
OR
function updateDDLValues() {
$('.ddlProjectvalue span option').unwrap().show();
// Hide all selected options from other selectlists
$('.ddlProjectvalue').each(function (i, element) {
var selectedvalue = $(element).find('option:selected').val();
$('.ddlProjectvalue').not(element).find('option[value="' + selectedvalue + '"]').wrap('<span>').hide();
});
}
如果我们想要使用I E之外的其他代码,我们可以接触IE不支持的上述代码(在我的问题中)。