2015-05-21 3 views
6

Ich erstelle einen mehrstufigen Fragebogen. Ich habe 3 Fragen (3 Divs), das DOM sieht so aus (Pseudocode). Meine Frage sindjQuery zum Lesen von nicht leeren und sichtbaren Textfeldern

1.Wie kann ich den Wert aus dem Feld lesen, welcher Typ ist URL (Typ = 'URL') in Q3?

2.Was liest nur die nicht leeren text/textarea/url Felder? Bedeutung Ich möchte nur die Textfelder lesen, wenn der Benutzer etwas eingegeben hat.

Ich dachte eine dumme Art, jedes Feld zu lesen, egal ob es leer ist. dann habe ich den Befehl isset/empty php, um zu sehen, ob das leer ist, wenn ja, dann nehme ich keinen Wert. Aber gibt es einen besseren Weg, dies zu erreichen?

<div id=q1> 
    <input type='text' id='q1text'> 
    <input type='button'> // this btn will hide q1 and show q2. 
</div> 

<div id=q2 style="display:none"> 
    <input type='textarea' id='q2textarea'> 
    <input type='button'> // this btn will hide q2 and show q3 
</div> 

<div id=q3 style="display:none"> 
    <input type='url' id='q3url'> // this btn will submit the form data. 
    <input type='submit'> 
</div> 

Antwort

6

1.How kann ich den Wert aus dem Feld gelesen, die die URL ist (type = 'url') im 3. Quartal?

Es hat ID-Attribut. Sie können id Wähler zusammen mit .val()

$('#q3url').val(); 

2.What lese nur die nicht leeren Text/Textfeld/url Felder verwenden? Bedeutung Ich möchte nur die Textfelder lesen, wenn der Benutzer etwas eingegeben hat.

können Sie Filterfunktion verwenden Sie das Element, um herauszufiltern, die den Wert nicht in ihnen haben:

var allnonemptyurls = $('input[type="url"]').filter(function() { 
    return !!this.value; 
}) 
+1

Gute Antwort. Nette Verwendung von Double, um den Wert nicht in einen booleschen Wert zu konvertieren. – John

+1

Dies ist ein guter Beitrag über seine Verwendung http://StackOverflow.com/a/784946/1719752 –

+0

@MilindAnantwar Danke für die schnelle Antwort. Ich versuche einfach deine Methode. Ich habe das herausgefunden. Die 'var allnonemptyurls' sind keine Boolesche, wenn ich versuche, sie auf der Konsole nachzuschlagen. Allerdings habe ich einen Breakpoint innerhalb des Filter Callbacks gesetzt. '!! this.value' hat mir einen booleschen Wert zurückgegeben, ich weiß aus irgendeinem Grund nicht, wenn wir den' !! this.value' zurück zu 'allnonemptyurls' bringen, er wird tatsächlich zu einem DOM-Objekt für dieses URL-Element. Irgendeine Idee? –

Verwandte Themen