2012-06-16 127 views
0

我在IE9中的動態下拉列表中遇到問題。IE9下拉列表問題

我有一個表,其中一列被用連擊,每行一個組合填寫,而且每個連擊與HTML 5.0的代碼創建的,是這樣的:

<select id="cboABC0" class="RetrieveList cboABC" data-index="0" data-info="3" name="cboABC"> 
<option selected="selected" value="N">Select</option> 
<option value="P">Partial</option> 
<option value="C">Complete</option> 
<option value="CA">Cancelled</option> 
</select> 
</td> 

我想根據所選擇的選項時的選項之一,在下拉列表中選擇要發生什麼,以及對於這一點,我已經嘗試使用類RetrieveList的事件不同的方式,使用jQuery:

$(".RetrieveList").live(''click'',function(event){  

var val_info = $(this).attr("data-info"); 
var val_index = $(this).attr("data-index"); 

var sOptionSelected = $(this).val(); 

alert(sOptionSelected); 

// Here is where I want to do something , depending on the selected option. 

}); 

隨着「實時點擊」,至少點擊事件被「解僱」,但它不識別我選擇的內容,它保留在我選擇的最後一個選項中,例如,如果沒有選擇任何內容,我打開組合框,移動到另一個選項並單擊該選項,它將轉到單擊事件,但值返回$(this).val()是以前不是剛剛選擇的那個。另一方面,如果我用箭頭鍵選擇選項,然後點擊,ID確實會識別新的值。就好像它只承認「點擊」的變化,而不是有價值的變化。

我嘗試過使用「綁定點擊」,「實時更改」和「綁定更改」,並且使用這些選項,點擊甚至不會被「解僱」。

同樣,這一切都發生在IE9,與Mozilla,我沒有任何重大問題。

如果有人能夠幫助我解決這個問題,我將不勝感激。

在此先感謝,

關心!

布倫達

回答

2

首先,你必須''click''時,它應該只是'click'。我不會使用click,而是使用change,因此只要列表發生變化就會觸發,而不僅僅是當用戶點擊它時觸發。 click即使只是點擊它,但不會做出不同的選擇(點擊查看所有下拉項目),它將會觸發。

修復這個問題,它適用於所有瀏覽器。

DEMO

+0

感謝Sachleen,我想你的建議,並用來代替「點擊」,「變革」,但該事件,如果我改變與鍵的選項只被解僱,給「輸入」,如果我用鼠標選中它,它永遠不會被解僱,爲什麼會出現這種情況?謝謝! –

+0

我提供的演示程序應該如何工作?如果是這樣,這個問題是在你的代碼中的其他地方,我們需要看到它隔離它。檢查控制檯(扳手>工具>在Chrome瀏覽器中的Javascript控制檯)的任何錯誤 – sachleen

0

嘗試:

$(".RetrieveList").live('change',function(event){  

var val_info = $(this).attr("data-info"); 
var val_index = $(this).attr("data-index"); 

var sOptionSelected = $(this).val(); 

alert(sOptionSelected); 

// Here is where I want to do something , depending on the selected option. 

}); 
+0

感謝chrisvillanueva,我試過你的建議,並使用'改變'而不是'點擊',但事件只會被觸發,如果我改變選項的鍵和給「輸入」,如果我用鼠標選中它,它永遠不會被解僱,爲什麼會出現這種情況?謝謝! –

+0

嗨。該代碼適用於我。請在這裏查看演示:http://jsfiddle.net/nickadeemus2002/7PBWE/其他地方可能存在問題。 – chrisvillanueva