Chrome:使用jQuery更改选择值无法正常工作

时间:2010-11-29 02:45:50

标签: jquery select google-chrome magento option

此代码适用于IE,FF和Safari(windows7)。

然而,它无法在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正在选择我要求的选项,但它会以某种方式恢复...可能还有另一个覆盖它的调用..

2 个答案:

答案 0 :(得分:0)

如果您知道$j('select#attribute76').val()生成一个值,为什么不总是使用它而不是那个不起作用的较长$j('select#attribute76 option:selected').val()

编辑:
我明白了。 select的值可以是数组,因为select也可以是多选。与空字符串('')进行比较时,大多数浏览器都会将所有空值视为相等的快捷方式,无论是0NULL还是没有项目的数组。

我相信你可能会有更好的运气
if (!$j('select#attribute76').val())

或将返回的值转换为字符串

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

答案 1 :(得分:0)

我仍然不知道问题是什么。

我通过将代码移到javascript调用的末尾来解决它。

我之后移动的代码似乎几乎没有关联..将更多内容分配给.click函数,它只是添加/删除类,而不是更改任何表单值。 +一些视频代码..

感谢@clockworkgeek试图提供帮助。

相关问题