2016-08-21 5 views
0

Ich habe 2 Optionen: #home-none und #home-select, wenn # home-none ausgewählt ist, werden alle meine Eingaben mit der Klasse .home deaktiviert.JQuery Eingänge deaktivieren, wenn Option ausgewählt ist

HTML:

Optionen

<select class="form-control"> 
    <option id="home-none">-</option> 
    <option id="home-select">Team</option> 
</select> 

Eingänge

<div class="form-group"> 
    <input class="form-control home" name="h-p1-fn" placeholder="First name" type="text"/> 
</div> 
<div class="form-group"> 
    <input class="form-control home" name="h-p1-ln" placeholder="Last name" type="text"/> 
</div> 

JS:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#home-select").click(function(){ 
      $(".home").prop('disabled',true); 
     }); 
     $("#home-none").click(function(){ 
      $(".home").prop('disabled',true); 
     }); 
    }); 
</script> 

Die Konsole Fehler nicht zeigen, aber es funktioniert nicht.

Antwort

3

Sie hängen an das falsche Ereignis. Verwenden Sie stattdessen das Ereignis der select. Von dort können Sie das value Attribut der option Elemente lesen, um die relevanten input Elemente als deaktiviert zu setzen. Versuchen Sie folgendes:

$(document).ready(function(){ 
 
    $("select.form-control").change(function(){ 
 
    $(".home").prop('disabled', $(this).val() == 'home-none'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select class="form-control"> 
 
    <option value="home-none">-</option> 
 
    <option value="home-select">Team</option> 
 
</select> 
 

 
<div class="form-group"> 
 
    <input class="form-control home" name="h-p1-fn" placeholder="First name" type="text"/> 
 
</div> 
 
<div class="form-group"> 
 
    <input class="form-control home" name="h-p1-ln" placeholder="Last name" type="text"/> 
 
</div>

+0

'$ (this) .val() == haus select'' 'home-none'' sollte' $ (this) .val() == sein'. Eingänge sind deaktiviert, wenn Team ausgewählt ist –

+0

Nun, das ist, was Ihr Code derzeit versucht, aber Ihre Frage lautet: 'Wenn # home-none ausgewählt ist, möchte ich alle meine Eingaben mit der Klasse .home deaktiviert werden. Es ist verwirrend. In beiden Fällen müssen Sie nur den entsprechenden Wert in der Gleichheitsprüfung setzen. –

+0

Entschuldigung, Grammatikfehler. Du hast die Frage richtig beantwortet –

2

Dies funktioniert besser

  1. Gebrauchswert anstelle von ID auf Option
  2. verwenden, um das Änderungsereignis
  3. führen Sie das Änderungsereignis auf Last handle a change select beim Nachladen

Linie dies:

<select class="form-control"> 
    <option value="home-none">-</option> 
    <option value="home-select">Team</option> 
</select> 

$(function() { 
    $("select.form-control").on("change",function() { 
    $(".home").prop('disabled',this.value=="home-none"); 
    }).change(); // execute on load 
}); 
Verwandte Themen