2012-03-29 6 views
0

Ich habe eine lange Anmeldeform und möchte einige Felder ausblenden und nur anzeigen, wenn ein bestimmtes Eingabefeld mit Text gefüllt ist, wenn der Benutzer etwas Text in dieses Feld eingibt, werden die anderen Formularfelder angezeigt.jquery bestimmte Formularelemente ausblenden, bis ein bestimmtes Textfeld ausgefüllt wurde?

Ich habe bei verstecken und zeigen divs sah aber einige Mühe, Formularelemente verstecken und zeigen sie auf einen bestimmten Auslöser haben (eine Form mit Text bevöl)

jemand kann mir zeigen in die richtige Richtung, wie zu implementieren solche Funktion in Abfrage? Danke in Advance!

Antwort

3

Da spezifische Problemdetails nicht angegeben wurden, habe ich ein einfaches Beispiel zusammengestellt, das Ihnen hoffentlich hilft, Ihr Problem zu lösen.

You can see the live demo here.

HTML

<div id="field1wrapper" style="visibility: hidden;"> 
    <label for="field1">Field 1:</label> 
    <input type="text" id="field1" /><span>&lt;-- write on me</span> 
</div> 
<div id="field2wrapper"> 
    <label for="field2">Field 2:</label> 
    <input type="text" id="field2" /> 
</div>​ 

JavaScript

$("#field1").keyup(function() 
{ 
    if($("#field1").val() != "") 
    { 
     $("#field2wrapper").css("visibility", "visible"); 
    } 
    else 
    { 
     $("#field2wrapper").css("visibility", "hidden"); 
    } 
});​ 
+0

ah wie das .. mit der keyup und val-Funktion zu überprüfen, ob der Wert leer ist, dachte ich, ich brauche einen Trigger, aber zählen Sie finden den richtigen Weg, es zu tun. Ich versuche dies zu denken, das funktioniert genau richtig thx! – Rubytastic

+0

Funktioniert perfekt nur meine Submit-Taste, die unter den Elementen ist Ich verstecke, ist nicht richtig platziert, würden Sie zufällig eine Lösung für das auch wissen? Danke! – Rubytastic

+0

@Rubytastic, vielleicht möchten Sie etwas wie das: http://jsfiddle.net/g6JKy/1/? Was meinst du damit, nicht richtig platziert zu werden? –

2

You could do something like this:

HTML:

<label for="txt1">Field 1</label> 
<input type="text" id="txt1" /> 

<label class="secondary hidden" for="txt2">Field 2</label> 
<input class="secondary hidden" type="text" id="txt2" /> 

<label for="txt3">Field 3</label> 
<input type="text" id="txt3" /> 

<label class="secondary hidden" for="txt4">Field 4</label> 
<input class="secondary hidden" type="text" id="txt4" /> 

CSS:

input { display: block; margin-bottom: 10px; } 
.hidden { display: none; visibility: hidden; } 

jQuery:

var $txt1 = $("#txt1"), 
    $secondary = $(".secondary"); 

$txt1.keyup(function() { 
    $secondary.toggleClass("hidden", $(this).val() == ""); 
});​ 

Mit toggleClass ermöglicht es Ihnen t o Übergeben Sie einen booleschen Wert zum Hinzufügen oder Entfernen der Klasse. Und die Bindung an keyup ermöglicht es Ihnen, sofort zu verbergen oder zu zeigen, je nach dem Wert des Feldes vs warten onblur wie bei change.

Verwandte Themen