2015-05-21 14 views
6

Tworzę wieloetapowy kwestionariusz. Mam 3 pytania (3 div), DOM wygląda tak (Pseudo-kod). Moje pytanie to:jQuery do czytania niepustych i widocznych pól tekstowych

1.Jak mogę odczytać wartość z pola, którego typ to url (type = 'url') w q3?

2.Czy odczytać tylko niepuste pola tekst/textarea/url? Oznacza to, że chcę tylko czytać pola tekstowe, gdy użytkownik coś w nim wpisał.

Myślałem o głupim sposobie czytania każdego pola, bez względu na to, czy jest puste. następnie mam polecenie isset/empty php, aby sprawdzić, czy jest puste, jeśli tak, to nie przyjmę wartości. Ale czy istnieje lepszy sposób na osiągnięcie tego?

<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> 

Odpowiedz

6

1.How mogę odczytać wartość z pola, który typ jest url (type = 'url') w Q3?

Posiada atrybut id. Można użyć selektora id wraz z .val()

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

2.What czytają tylko niepustych pól text/textarea/URL? Oznacza to, że chcę tylko czytać pola tekstowe, gdy użytkownik coś w nim wpisał.

można użyć funkcji filtrowania odfiltrować elementu, które nie mają wartości w nich

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

dobra odpowiedź. Przyjemne użycie podwójnego nie konwertowania wartości na wartość logiczną. – John

+1

To jest dobry post na temat jego wykorzystania http://stackoverflow.com/a/784946/1719752 –

+0

@MilindAnantwar Dzięki za szybką odpowiedź. Po prostu wypróbuję twoją metodę. Dowiedziałem się tego .. 'var allnonemptyurls' nie jest boolowskie, gdy próbuję sprawdzić to na konsoli. Jednak umieszczam punkt przerwania wewnątrz oddzwaniania filtra. '!! this.value' zwrócił mi boolean, nie wiem z jakiegoś powodu, kiedy zwracamy' !! this.value' z powrotem do 'allnonemptyurls', to faktycznie staje się obiektem DOM dla tego elementu url. Dowolny pomysł? –

Powiązane problemy