2017-04-26 21 views
0

カテゴリとサブカテゴリを選択できる2つの選択ボックスがあります。私はサブカテゴリをデフォルトで無効にしたいと思っており、ユーザが以前にそのカテゴリを選択したときに有効になります。別のボックスが選択されているときに、選択ボックスから「無効」プロパティを削除します。

<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

'cat'は文字列ですか? –

+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

さて、実現しました。ワン秒更新の答え –

関連する問題