2011-08-07 3 views
1

動的に更新される値ではなく、隠された入力要素の初期値を使用してIE9に問題があります。キャッシュされた隠し入力値が更新された値の代わりにIE9で使用されています

私はあなたが生きて私の問題を見ることができるように、次のように作成しました:ページが読み込まhttp://jsfiddle.net/NN8gM/

  • 、および非表示の入力値が表示されます。 の値が動的に更新されると( のチェックボックスをクリックすると)、新しい値(7.00)の代わりに初期値(6.00)がIE に表示されます。

私が試した他のブラウザでは、更新された値が正しく表示されています。希望の効果を確認するには、firefoxでサンプルを実行します。

なぜですか?

答えて

0

私はそれを通常の方法をやって使用することをお勧めしたい:

$('#si').attr('value', '7.00'); 
+0

を(actaullyその非常に厳しいが、IE9にそれはほとんどのdoesntでもオープンをデバッグします) ( '#si') 'はそれが一意であると仮定するためです。だから問題は使用しています: '$(this).next()' これはFirefox 9.1で動作しますが、IE 9では動作しません。 – Mike123

+0

これはInternet Explorerだと思いますか? –

+0

ハハ..本当。私はこの試合には新しく、すでに難しいことを学んでいます。 – Mike123

0

が、私はちょうどIE9であなたのコードをチェックし、一つのこと私は、そのキャッシュされた値を取り出すことをその真実ではない、あなたに伝えたいと思います

実際にこのコードは

$(this).next().attr('value', '7.00');が動作していない私は$('input[type=hidden]').attr('value', '7.00'); であなたのコードの一部を置き換え、それがうまく働いた、以下のデモです。

あなたが書いたコードがmozillaで動作している理由はまだわかりません。実際には、問題は私が使用することはできないんだけどで、 `$(だけでなく、.next()なしで)働く

http://jsfiddle.net/NN8gM/9/

+0

うーん..非常に奇妙な。上記の@Kwpolskaと同様に、両方のソリューションが動作します。 $(this).next()。attr( 'value'、 '7.00');は他のブラウザでは動作しますが、ieでは動作しないのはなぜですか? '.next()'が重要な理由は、idが "si"の入力が多いためです。私はそれらのうちの** **だけを動的に更新する必要があります(**は**トリガーボタンの次の**です)。 – Mike123

関連する問題