2011-06-22 17 views
1

我已經創建了一個簡單的測驗,我在Plone中使用(這就是爲什麼我使用'jQuery'而不是'$')和由於某種原因我的JavaScript代碼計算得分在飛行中導致單選按鈕在IE 8中顯示不正確。如果顯示不正確,我的意思是單擊該按鈕後該值的計算是正確的,但該子彈並未顯示出該按鈕已被單擊。我有一段時間試圖糾正這一點。它適用於所有其他瀏覽器。 This是我簡單的測驗代碼的小提琴。在IE8中,單選按鈕在加載jquery時無法按預期工作,但如果您註釋掉所有javascript單選按鈕都可以正常工作。jQuery在IE8單選按鈕造成隱形子彈

任何幫助將不勝感激。

回答

1
jQuery('input').change(function() { 
    // ... [snip] ... 
    return false; 
}); 

你爲什麼要返回false?這通常會告訴瀏覽器「取消」事件的默認行爲。如果有的話,我很驚訝,Firefox 表現出這種行爲。

刪除return false;除非我錯過了一些東西,否則你的應用程序邏輯完全不需要它。

+0

我不太清楚爲什麼我把它放在那裏,但謝謝你。 – keiththomps

+0

@kthompson:沒問題 –

2

嗯......我想你的問題的一大部分是<input>元素的不正確使用。輸入是自閉標籤。你不能將它們包裝在其他HTML中。

<input type="text"><span>HTML here</span></input> <!-- WRONG! --> 

<input type="text" /> <span>HTML here</span> <!-- Correct --> 

UPDATE:

有趣。剛注意到你從onchange事件返回false。這是否有特定的原因?具有諷刺意味的是,IE8實際上可能是唯一一個行爲正常的人。返回false應該被認爲本質上是「取消將會完成的事情」。例如,在點擊鏈接的情況下,它會導致URL不被遵守。在提交表單時,它將取消POST到服務器。 IE8可能會將其解釋爲:取消改變收音機的外觀。

+0

感謝您發現這個明顯的錯誤,但不幸的是它與問題無關。我以爲我一直保持小提琴最新,但我錯了,我實際使用的代碼確實有正確的輸入標籤,但同時也遭受同樣的問題。 – keiththomps

+0

更新是正確的。無線電值更改事件被「取消」。 Firefox不遵守這一點令人驚訝。即使IE8似乎只表現出當時的行爲。 –