2011-06-22 5 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

Ummm ...あなたの問題の大きな部分は、<input>要素の誤った使用だと思います。入力は自己閉じタグです。他のHTMLの周りにそれらをラップすることはできません。

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

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

UPDATE:

興味深いです。あなたがonchangeイベントからfalseを返すことに気付いただけです。それには特別な理由はありますか?皮肉なことに、IE8は実際に正しく動作する唯一のIE8かもしれません。 falseを返すことは、本質的に「行われたことをキャンセルする」ことを意味すると解釈されるべきである。たとえば、リンクのクリックの場合、URLには追従しません。フォームを送信すると、サーバーへのPOSTがキャンセルされます。 IE8は、それを意味すると解釈している可能性があります:ラジオの外観を変更しないでください。

+0

この明白なエラーを見つけていただきありがとうございますが、残念ながら問題には関係ありません。私はフィドルを最新の状態に保っていると思ったが、私は間違っていた。実際に使っているコードには正しい入力タグがあるが、同じ問題を抱えている。 – keiththomps

+0

更新が正しいです。無線値変更イベントは「キャンセル」されます。 Firefoxがこれを守らないのは驚くべきことです。 IE8でさえ、その時の動作しか見せないようです。 –

関連する問題