的8 GET價值我一直在谷歌上搜索約2小時,以解決以下問題(包括其他問題#1):Internet Explorer的單選框
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('input[type="radio"]').unbind('click.preset')
.bind('click.preset', function() {
doingStuffWith(jQuery(this).val());
});
});
</script>
<input type="radio" name="lightType" value="led" />
<input type="radio" name="lightType" value="tube" />
正如你所看到的,我只是想找回單選按鈕組「lightType」的當前值與它一起工作。這在Firefox/Safari/Chrome中很有魅力,但IE8只是返回一個空字符串而讓我很難過。
我已經嘗試了幾個黑客從其他問題,如綁定更改事件的單選按鈕,並迫使IE8通過模糊單擊單選按鈕來啓動它。也許我是 剛剛患上了失明現在。
我正在使用最新的jQuery版本,並且確保沒有其他綁定事件會受到干擾。但有趣的是,檢索值前添加一個警報()和IE返回當前值:
....
// DOES WORK
alert();
alert(jQuery(this).val()); // alerts e.g. "tube"
// DOESN'T WORK
alert(jQuery(this).val()); // alerts ""
我認爲這可能是一個時間的問題,而是試圖耽誤我用的setTimeout一個警報調用沒有幫助。
在此先感謝大家,我希望我只是盲目,並沒有在IE8中發現另一個醜陋的行爲。
幫助我學習爲什麼不乾脆:'的jQuery(「輸入[類型=」電臺「)')。on('change',function(){ doingStuffWith(jQuery(this).val()); });' – 2013-03-20 23:27:24
當控件失去焦點**時,IE中的更改偵聽器觸發**,這是根據W3C規範,但不直觀,而不是其他瀏覽器如何實現它(他們有效地使用它作爲一個單擊複選框和單選按鈕的偵聽器)。因此,通常在這些元素上使用點擊偵聽器。 – RobG 2013-03-21 00:05:07