2010-11-29 52 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(); 
    }); 

正在發生的事情是,Chrome的選擇,我要求它的選項,但它恢復以某種方式回來......也許有另一個電話是壓倒一切......

回答

0

我仍然不知道問題是什麼。

我通過將我的代碼移到javascript調用結束時解決了它。

我把它移動後的代碼似乎幾乎沒有關係..分配更多的.click功能,這只是添加/刪除類,並沒有改變任何形式值。 +一些視頻代碼..

感謝@clockworkgeek試圖幫助。

0

如果你知道$j('select#attribute76').val()產生一個值爲什麼不總是使用它,而不是更長的$j('select#attribute76 option:selected').val()其中不起作用?

編輯:
我明白了。 select的值可以是一個數組,因爲select也可以是多選。當與一個空字符串('')進行比較時,大多數瀏覽器將所有空值視爲相等的快捷方式,無論是0,NULL還是沒有項目的數組。我相信你可能有更好的運氣

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

或返回值鑄造成一個字符串

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

我相信我都嘗試過。我在程序的代碼中使用了較短的版本..IF .. THEN使用較短的版本,並且仍然返回空。 – 2010-11-29 21:26:00