2017-04-26 2 views
0

ausgewählt Ich habe zwei Auswahlboxen, wo Benutzer Kategorie und Unterkategorie auswählen können. Ich möchte die Unterkategorie standardmäßig deaktivieren und aktivieren, wenn der Benutzer zuvor die Kategorie ausgewählt hat.entfernen ‚disable‘ Eigenschaft von Auswahlbox, wenn ein anderes Feld

<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> 

und

<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> 

Ich habe versucht, dies zu tun, aber es funktioniert nicht:

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

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

Ist 'Katze' eine Schnur? –

+0

Versuchen Sie '$ ('# subcat'). RemoveProp ('disabled');' stattdessen. Sie geben der Eigenschaft den Wert 'false'. Ich habe festgestellt, dass jQuery manchmal nicht als Eigenschaft deaktiviert angezeigt wird. Versuchen Sie also '$ (...). Attr ('disabled', null)' ebenfalls. – cgTag

+0

@RoryMcCrossan Ja. Es ist eine Zeichenfolge (Variable von URL). – harunB10

Antwort

1

Wenn Sie Variable von Laravel Klinge verwenden möchten, dass ein String ist, muss es sein in Anführungszeichen eingeschlossen.

Was könnte Ihr Code gleichsetzen var cat = fruits zu, das einen Syntaxfehler werfen. Wenn Sie das Blade in Anführungszeichen setzen, sagen Sie richtigerweise var cat = "fruits".

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

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

Aber es ist 'onclick =" this.form.submit() "' .. Wenn ich etwas von Katze wähle, übergibt es das Formular und lädt die Seite neu. – harunB10

+0

Okay, gerade realisiert. Eine Sekunde, die Antwort aktualisiert –

Verwandte Themen