2013-03-11 94 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

相關問題