下拉列表选择在Internet Explorer中无法正常工作

时间:2014-04-21 08:46:10

标签: javascript jquery

我有各种下拉列表,如果我们选择第一项不应该显示在第二个下拉列表中,我已经编写了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中无法正常工作,有什么问题?

3 个答案:

答案 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不支持的上述代码(在我的问题中)。