2010-11-29 9 views
0

このコードはIE、FF、およびSafari(Windows7)で機能しました。Chrome:jQueryで選択値を変更すると正しく動作しない

ただし、Chromeでは機能しません。

基本的には、ページの読み込み(Magentoの製品ページ)を変更しようとしています。選択したオプション(非表示の選択ドロップダウンリスト)を変更し、[カートに追加]ボタンの上にカーソルを置くと、オプションが選択されていることを確認します。

以下のコード:

$j('select#attribute76').val($j('a'+hash).attr('index')).change(); 
alert($j('select#attribute76').val()); // shows correctly w/ all browsers 

...その後に...何が起こっている

$j('#addtocartbutton').hover(function(){ 
     //alert($j('select#attribute76 option:selected').val());// empty in Chrome! 
     if ($j('select#attribute76').val()=='')// empty in Chrome! 
      $j('.infoOptionsColors a:first').click(); 
    }); 

はクロームが、私はそれを求めていますオプションを選択していることですが、それは戻ります何らかの形で戻って...おそらくそれを上書きしている別の呼び出しがあります。

答えて

0

を返された値をキャストして、より良い運を持っているかもしれないと考えています。

私はjavascriptコールの最後に向かって自分のコードを移動することで解決しました。

私がそれを移動したコードはほとんど関係していないようです。クラスを追加/削除するだけで、フォームの値を変更しないでください。 +いくつかのビデオコード..

ありがとうございました@clockworkgeek。

0

$j('select#attribute76').val()を知っていれば、それよりも長く使用する価値がないのはなぜですか$j('select#attribute76 option:selected').val()動作しませんか?

編集:
私はよく分かります。選択は複数選択でもよいので、選択の値は配列にすることができます。空の文字列('')と比較すると、大部分のブラウザは、0NULL、または項目のない配列など、すべての空の値を等しいとみなすというショートカットを作成します。私はあなたが、私はまだ問題が何であったか知らない

if (!$j('select#attribute76').val()) 

または文字列に

if (String($j('select#attribute76').val())=='') 
+0

私は両方を試みたと信じています。私はプログラムのコードで短いバージョンを使用します。IF..THENは短いものを使用し、まだ空に戻ります。 –

関連する問題