2017-04-26 68 views
0

我有兩個選擇框,用戶可以在其中選擇類別和子類別。我希望子類別在默認情況下處於禁用狀態,並在用戶先前選擇類別時啓用。當另一個框被選中時,從選擇框中刪除「禁用」屬性

<select name="cat" onclick="this.form.submit()" style="width:220px;height:120px;" size="8"> 
    <option value="">All categories</option> 
     @foreach($categoriesFilter as $cf) 
      <option value="{{ $cf->mainCat_de }}">{{ $cf->mainCat_de }}</option> 
     @endforeach 
</select> 

<select name="subcat" id="subcat" onchange="this.form.submit()" style="width:220px;height:120px;" size="8" disabled> 
    <option value="">All subcategories</option> 
     @foreach($subCategoriesFilter as $sf) 
      <option value="{{ $sf->cat_de }}">{{ $sf->cat_de }}</option> 
     @endforeach 
</select> 

我試圖做到這一點,但它不工作:

<script type="text/javascript"> 
    var cat = {{ Request::get('cat') }}; 

    if(cat != "" || cat != null){ 
     $('#subcat').prop('disabled', false); 
    } 
</script> 
+0

貓是一個字符串嗎? –

+0

嘗試'$('#subcat')。removeProp('disabled');'而不是。你在做的是分配屬性的值爲'false'。我發現有時候jQuery沒有看到作爲屬性禁用。所以試試'$(...)。attr('disabled',null)'。 – cgTag

+0

@RoryMcCrossan是的。它是一個字符串(來自URL的變量)。 – harunB10

回答

1

如果您希望使用變量從Laravel的刀片是一個字符串,它必須是用引號包裹。

你的代碼可能等同於var cat = fruits,這會引發語法錯誤。通過用引號包裹刀片,您正確地說var cat = "fruits"

var cat = "{{ Request::get('cat') }}"; 

$('#subcat').prop('disabled', cat == "" || cat == null); 
+0

但它是'onclick =「this.form.submit()」'。當我從cat中選擇一些東西時,它會提交表單並重新加載頁面。 – harunB10

+0

好吧,剛剛意識到。一秒更新答案 –

相關問題