2017-05-22 10 views
-1

Ich möchte das Dropdown-Menü deaktivieren, wenn der Optionsschalter prov nicht ausgewählt ist. Ich möchte es nur aktivieren, wenn prov ausgewählt ist.Dropdown-Menü deaktivieren, abhängig vom Optionsfeld

Ich habe eine Demo davon erstellt, aber es funktioniert nicht und ich weiß nicht warum.

Html:

<td colspan="4"> 
    <input type="radio" name="editList" id="prov"value="Prov">Prov 
    <input type="radio" name="editList" id ="user"value="User">User 
    <input type="radio" name="editList" id="suc "value="Suc">Suc 
<select id="cuadrilla" class="form-control select2 select2-accessible" aria-hidden="true"> 
<option value="1 Year" selected="selected">1 Year</option> 
<option value="2 Years">2 Years</option> 
<option value="3 Years">3 Years</option> 
</select>     
</td> 

JS

$('input:radio[name="editList"]').change(function() { 
      if ($(this).val() == prov) { 
       $('#cuadrilla').attr('disabled', true); 
      } else 
       $('#cuadrilla').removeAttr('disabled'); 
     }); 

JsFiddle

+0

Betrachten mit 'prop ('deaktiviert', true)/prop ('deaktiviert', false)' anstelle von 'attr/removedAttr'. Es ergibt logisch mehr Sinn. Und so kannst du es in einem wie 'prop ('disabled, $ (this) .val() ===' Prov ')' machen. –

Antwort

0

Sie haben einige Syntaxfehler in Ihrem Code mit Ihrem If/Else-Block. Auch Sie verweisen die ID "prov" des Radio-Button, anstelle des Wertes Proveedor

$(document).ready(function() { 
 

 
    $('input:radio[name="editList"]').click(function() { 
 
    if ($(this).val() == "Proveedor") { 
 
     $('#cuadrilla').attr('disabled', true); 
 
    } else { 
 
     $('#cuadrilla').attr('disabled', false); 
 
    } 
 
    }); 
 
    
 
    $('input:radio[name="editList"]')[0].click(); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<input type="radio" name="editList" id="prov" value="Proveedor" />Proveedor 
 
<input type="radio" name="editList" id="user" value="Usuario" />Usuario 
 
<input type="radio" name="editList" id="suc " value="Sucursal" />Sucursal 
 
<select id="cuadrilla" class="form-control select2 select2-accessible" aria-hidden="true"> 
 
<option value="1 Year" selected="selected">1 Year</option> 
 
<option value="2 Years">2 Years</option> 
 
<option value="3 Years">3 Years</option> 
 
</select>

+0

was ist, wenn ich es am Anfang deaktivieren und aktivieren Sie es nur, wenn ich "Proveedor" klicke, ist es wie document.ready funktioniert nicht, ich möchte es mit deaktivieren Option – Beba

+0

auslösen klicken() ... ' $ ('input: radio [name = "editList"]'). click (function() {}). click() ' – epascarello

+0

Aktualisiertes Snippet, damit es mit deaktivierter Option startet. – Woodrow

0

Sie müssen Anführungszeichen verwenden für 'Prov':

$('input:radio[name="editList"]').change(function() { 
      if ($(this).val() == 'Prov') { 
       $('#cuadrilla').attr('disabled', true); 
      } else 
       $('#cuadrilla').removeAttr('disabled'); 
     }); 
Verwandte Themen