我似乎無法從在IE6/IE7中查看時動態創建的選擇選項中獲取值。 IE總是返回undefined作爲值。
我有一個設置a fiddle,以下是一個例子的完整源代碼(如果你試圖在IE6/7用小提琴...嘿嘿):
<!doctype html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
var json = "blah blah blah";
jQuery(document).ready(function(){
$('#myForm').html('<select id="sg-1" class="setgroup" name="sg-1"><option value="s-1">Something</option><option value="s-2">Another</option><option value="s-3">Third</option><option value="s-4">Fourth</option></select>');
$('.setgroup').live('change',function(){
updateSelected($(this + ':selected').val(), json);
});
});
function updateSelected(value, json){
//do some stuff with the json in my app
$('#selected').html(value + ' was selected');
}
</script>
</head>
<body>
<form id="myForm">
</form>
<p id="selected" style="font-size:20px; color:#f00;"></p>
</body>
</html>
的示例使用現場( ),但是我也使用.delegate()嘗試了一個變體。這兩種方法都適用於除IE6/7以外的所有瀏覽器。我也嘗試使用點擊作爲事件。有任何想法嗎?
我也嘗試過提供的解決方案(s)here。這個問題似乎在$(this)中沒有被正確解釋,就好像我將一個alert放在live/change/delegate中,它會正確觸發。
我原來是輸入反應在犯錯 - $(這)是實際可行的用'live'在IE6和IE7。 – Nick
問題顯然是字符串連接:'$(this +':selected')' - IE怪胎,顯然其他瀏覽器放棄串接,只是試圖$(this),它的工作。 – Nick
@hztetra:它不應該在任何瀏覽器中工作,但你是對的,它在Chrome中起作用。奇怪的....我希望你現在知道,至少它是錯誤的連接'this'與一個字符串。它在其他瀏覽器中工作並不重要,它是不正確的。 –