2016-06-20 13 views
1

Haben Sie eine Idee, den jQuery-Code neu zu schreiben, um zwischen zwei Auswahlmöglichkeiten zu wählen (Ja und Nein)? .So blenden Sie Tabellen mit Optionsfeldern ein und aus?

Ich habe versucht, dies in jQuery:

$(document).ready(function() { 
    $("#send_to_one").hide(); 
    $("input:radio[name='decision']").change(function(){ 

    if(this.checked){ 
     if(this.value =='one'){ 
      $("#send_to_one").show() && $("#send_to_two").hide() 
     }else if(this.value =='two'){ 
      $("#send_to_two").show() 
     }else{ 
      $("#send_to_one").hide(); 
     } 
    } 
    }); 
}); 

CSS:

#send_to_one{ 
    display:none; 
} 

#send_to_two{ 
    display:none; 
} 

Die Schaltfläche "Ja" send_to_one gut funktioniert, wenn ich es auswählen, werden die richtigen Informationen angezeigt und Die Informationen von send_to_two sind ausgeblendet. Wenn ich den "Nein" Knopf wähle, werden die Informationen von send_to_two angezeigt, aber die send_to_one Informationen werden weiterhin angezeigt. Ich habe versucht, den Befehl von der ersten if-Anweisung zu verwenden, aber das funktioniert nicht. Hast du eine Idee?

Danke für Ihre Hilfe, aber ich füge immer den empfohlenen Befehl die send_to_two Aktion funktioniert nicht.

Das ist meine _form. Habe ich vielleicht einen Fehler gemacht?

<h2>Are you insured?</h2> <div id="send_to"> <input type="radio" id="send_poll" name="decision" value="one" checked="checked" />Yes<br/> <input type="radio" id="send_poll" name="decision" value="two" />No<br/> <div id="send_to_one"> <div class="table-row-2"> <div align="center"> <div class="field"> <div class="table"><%= ........ %></div><div class="table"></div><div class="table"></div> </div> </div> </div> <div id="send_to_two"> <div class="table-row-2"> <div align="center"> <div class="field"> <div class="table"> <div class="table"><%= ..... %></div><div class="table"></div><div class="table"></div></div> </div> </div> </div> </div> </div>

Vielen Dank für Ihre Hilfe!

+1

Ich denke, nur müssen Sie ein dd der Befehl hide() an die Bedingung, wo Wert = zwei – Johan

+0

Ich habe versucht, die Zeile hinzufügen $ ("# send_to_one"). hide(); ', aber das hat nicht funktioniert. Dann wurde die "Nein" Information nie gezeigt. – Frank

+0

Überprüfen Sie Ihre Klassen und Namen. Sind sie in deinem HTML richtig eingestellt? Vielleicht fügen Sie der Frage den HTML-Code hinzu. – Johan

Antwort

1

Sie sind nur die Haut Anweisung in der zweiten Bedingung fehlt, sollte Ihr Code sein:

if(this.value =='one') 
{ 
    $("#send_to_one").show(); 
    $("#send_to_two").hide(); 
}else if(this.value =='two'){ 
    $("#send_to_two").show(); 
    $("#send_to_one").hide(); //<<---------- Adding this line to hide 'send_to_one' 
}else{ 
    $("#send_to_one").hide(); 
} 

Weil Sie mit Jquery besser, wenn Sie jquery Objekt $(thhis) verwenden:

$(document).ready(function() { 
    $("#send_to_one").hide(); 
    $("input:radio[name='decision']").change(function() 
    { 
     if($(this).is(':checked') ) 
     { 
      if($(this).val()==='one') 
      { 
       $("#send_to_one").show(); 
       $("#send_to_two").hide(); 
      } 
      else if($(this).val()==='two') 
      { 
       $("#send_to_two").show(); 
       $("#send_to_one").hide(); 
      } 
      else 
      { 
       $("#send_to_one").hide(); 
      } 
     } 
    }); 
}); 

Hoffe das hilft.

$(document).ready(function() { 
 
    $("#send_to_one").hide(); 
 

 
    $("input:radio[name='decision']").change(function(){ 
 
    if($(this).is(':checked')) 
 
    { 
 
     if($(this).val()==='one') 
 
     { 
 
     $("#send_to_one").show(); 
 
     $("#send_to_two").hide(); 
 
     } 
 
     else if($(this).val()==='two') 
 
     { 
 
     $("#send_to_two").show(); 
 
     $("#send_to_one").hide(); 
 
     } 
 
     else 
 
     { 
 
     $("#send_to_one").hide(); 
 
     } 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="radio" name='decision' value='one'/>Yes 
 
<input type="radio" name='decision' value='two' checked/>No 
 
<br/> 
 
<div id="send_to_one"> 
 
    send_to_one div 
 
</div> 
 

 
<div id="send_to_two"> 
 
    send_to_two div 
 
</div>

+0

Ich habe versucht, die Zeile '$ (" # send_to_one ") hinzuzufügen. Hide(); ', aber immer, wenn ich diese Zeile hinzufüge, wird die" Nein "Information nicht angezeigt. Ich habe das gleiche Problem mit Ihrem Code, es funktioniert für die erste Aussage, aber nicht für die zweite. Ich habe versucht, die "else" -Anweisung wegzulassen, aber ich habe das gleiche Problem – Frank

0
if(this.checked){ 
     if(this.value =='one'){ 
      $("#send_to_one").show() && $("#send_to_two").hide() 
     }else if(this.value =='two'){ 
      $("#send_to_two").show(); 
      $("#send_to_one").hide() 
     }else{ 
      $("#send_to_one").hide(); 
     } 
    } 
0

dies versuchen und Ihren Code überprüfen ;

$(document).ready(function() { 
     $("#send_to_one").hide(); 
     $("input:radio[name='decision']").change(function(){ 

     if(this.checked){ 
      if(this.value =='one'){ 
       $("#send_to_one").show(); 
       $("#send_to_two").hide(); 
      }else if(this.value =='two'){ 
       $("#send_to_two").show(); 
       $("#send_to_one").hide(); 
      } 
     } 
     }); 
    }); 
0

Hoffnung fehlt dies wird Ihnen helfen:

$(document).ready(function() { 
    $("#send_to_one").hide(); 
    $("#send_to_two").hide(); 
    $("input:radio[name='decision']").click(function(){ 
     if($(this).val() =='one'){ 
       $("#send_to_one").show(); 
       $("#send_to_two").hide(); 
     }else if($(this).val() =='two'){ 
       $("#send_to_one").hide(); 
       $("#send_to_two").show(); 
     }else{ 
       $("#send_to_one").hide(); 
       $("#send_to_two").hide(); 
     } 
    }); 
}); 
Verwandte Themen