2014-04-21 35 views
0

我有各種各樣的下拉列表,從某種意義上說,如果我們選擇第一項不應該在第二個下拉列表顯示了我寫的jQuery像下拉列表中選擇無法在Internet Explorer正常工作

$(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

您使用的是哪個版本的IE? –

+0

Windows 7 IE V11。 – Sanjay

+0

Aheumm ...不工作在鉻或者...(小牛,V34) –

回答

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

如果我們要使用IE以外,我們可以接近我這是不支持IE上面的代碼(在我的問題)。

1

看來,大多數瀏覽器不允許隱藏<選項>。我認爲要走的路是完全刪除<選項>。

+0

有沒有其他的選擇? – Sanjay

+0

另一個選項(更好的恕我直言)是重建所有下拉列表的整個選項列表,除了更改的列表。 –

1

我已經發現了這個問題,$(element).find('option:selected').val()在這條線上元素即將爲未定義在IE瀏覽器,而在Chrome適當的值來了

+0

是的,它應該是$(element).val() –

+0

這個解決方案?我們如何解決它? – Sanjay

相關問題