2013-03-11 71 views
0

如果免费送货可用,我想禁用选择框。如果选项值存在,则禁用选择输入

<select name="shipping_method" id="shipping_method"> 
    <option value="">Select shipping</option> 
    <option value="free_shipping">Free Shipping</option> 
    <option value="international_delivery">International: $30.00</option> 
</select> 

我已经试过这(不知道是否会工作):

$(document).ready(function(){ 
    if($("option").val() == "free_shipping") { 
     $("select").prop("disabled"); 
    } 
}); 

然后假设在表单提交:

$(document).ready(function(){ 
    $("form").submit(function() { 
     $("select", this).prop("disabled", false); 
    }); 
}); 
+0

因此,如果有人从选择字段挑选免费送货,整个选择字段应该被禁用?这没有什么意义。 – j08691 2013-03-11 13:31:36

+0

没有它,当客户达到一个订单的门槛,他们得到免费送货,但循环不会删除其他送货方式。 – Ahhhhhhhhhhhhhdfgbv 2013-03-11 13:34:51

+0

你说的循环是什么? – j08691 2013-03-11 13:36:12

回答

1

您可以使用$.has

$('#shipping_method').has('option[value="free_shipping"]').prop("disabled", true); 

演示:Fiddle

1

选择选择

$('#shipping_method').change(function(){ 
    var j = $(this); 
    if(j.val() == 'free_shipping') { 
     j.attr('disabled', true); 
    }  
    else { 
     j.removeAttr('disabled'); 
    } 
}).trigger('change'); 
+0

'attr'不推荐用于更改像'disabled'或'checked'这样的运行时属性,而是使用'props()' – 2013-03-11 13:36:20

相关问题