我有两个选择输入设置为display:none。基于另一个元素中的change()
,我使用jQuery来show()
或hide()
。我的所有浏览器测试看起来都很棒,除了因“出错了......”消息而死的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 :(得分:1)
#wholesale_fulfillment
和#retail_fullfillment
都是select-elements,不是吗?您将select元素的值设置为nothing。我猜这就是问题;这是不可能的。
这将是您的代码:
$(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/>
- 代码,只需在该<option/>
- 代码中添加一个类,并取消注释已注释的Javascript代码:
<select id="#wholesale_fulfillment">
<option value="" class="empty">---</option>
<option value="something">Wholesaler</option>
</select>
答案 1 :(得分:0)
根据上面的每个naivists的评论,我试着调用没有参数的hide()。这并没有解决问题,但从show()和hide()中删除args确实解决了Chrome的问题。
答案 2 :(得分:0)
有人对此有任何建议吗?
是。 See if a bug has already been filed for this issue.
如果没有,请提交一份。包括一个最小的测试用例; pastehtml.com对于那种事情很好。
尽可能地破解崩溃。