2017-04-26 67 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

好吧,刚刚意识到。一秒更新答案 –

相关问题