2009-12-30 46 views
1

我有两个选择输入设置为显示:无。基于change()在另一个元素中我使用jQuery到show()hide()他们。我的所有浏览器测试看起来都很棒,除了那些因“出错了......”消息而死的Chrome。这里是我的功能显示和隐藏选择元素杀死Chrome

$(document).ready(function(){ 
    $("#supplier_type").change(function() { 
     if ($("#supplier_type").val() == 'Wholesaler') { 
     $("#retail_fulfillment").hide("slow"); 
     $("#retail_fulfillment").val(""); 
     $("#wholesale_fulfillment").show("slow"); 
     } else { 
     if ($("#supplier_type").val() == 'Retailer') { 
     $("#wholesale_fulfillment").hide("slow"); 
     $("#wholesale_fulfillment").val(""); 
     $("#retail_fulfillment").show("slow"); 
     } 
     } 
    }); 

任何人对此有什么建议?

+0

你有没有试过把它叫做不带参数的'hide()'方法? – naivists 2009-12-30 15:13:44

+0

感谢naivists!事实证明,如果我消除show()和hide()的参数,则错误消除。 – jerrygarciuh 2009-12-30 16:02:15

回答

0

上面的每个naivists的评论我试图调用hide()没有参数。这并没有解决问题,但从show()和hide()中删除参数确实解决了Chrome的问题。

1

#wholesale_fulfillment#retail_fullfillment都是select元素,不是吗?您将select元素的值设置为空。我想这就是问题所在。不可能。

这将是你的代码:

$(document).ready(function(){ 
    $("#supplier_type").change(function() { 
     if ($(this).val() == 'Wholesaler') { 
      $("#retail_fulfillment").hide("slow") 
      //$("#retail_fulfillment").find('option.empty').attr('selected', 'selected'); 
      $("#wholesale_fulfillment").show("slow"); 
     } else { 
      if ($(this).val() == 'Retailer') { 
      $("#wholesale_fulfillment").hide("slow"); 
      //$("#wholesale_fulfillment").find('option.empty').attr('selected', 'selected'); 
      $("#retail_fulfillment").show("slow"); 
      } 
     } 
    }); 
}); 

如果你仍然想选择一个<option/> -tag一个空值,只需添加一个类到<option/> - 标记,并取消对注释的Javascript代码:

<select id="#wholesale_fulfillment"> 
    <option value="" class="empty">---</option> 
    <option value="something">Wholesaler</option> 
</select> 
+0

感谢您的回复哈门。我尝试彻底删除值设置行,但Chrome仍然死亡。作为进一步的测试,我评论了show()和hide()调用,Chrome停止了死亡。 – jerrygarciuh 2009-12-30 15:51:24

+0

当show()未被调用时,Chrome停止了死亡。注释hide()没有效果。 – jerrygarciuh 2009-12-30 15:57:15