2012-09-15 9 views
5

Eventuali duplicati:
Check if inputs are empty using jQueryCome verificare se l'uno dei miei casella di testo è vuota o non in JavaScript

ho forma e caselle di testo, come faccio a determinare se qualcuno di questi le caselle di testo sono vuote se si utilizza javascript if else una volta che si fa clic sul pulsante di un modulo.

function checking() { 
    var textBox = $('input:text').value; 
    if (textBox == "") { 
     $("#error").show('slow'); 
    } 
} 

Grazie in anticipo!

+0

http://stackoverflow.com/questions/1854556/check-if-inputs-are-empty-using-jquery – jeremy

risposta

12

Utilizzando selettori di jQuery per la selezione degli elementi, si ha un oggetto jQuery e si dovrebbe utilizzare val() metodo per ottenere/impostare il valore degli elementi di input.

Si noti inoltre che il selettore :text è deprecato e sarebbe preferibile tagliare il testo per la rimozione di caratteri di spaziatura. è possibile utilizzare la funzione di utilità $.trim.

function checking() { 
    var textBox = $.trim($('input[type=text]').val()) 
    if (textBox == "") { 
     $("#error").show('slow'); 
    } 
} 

Se si desidera utilizzare value proprietà si deve prima convertire l'oggetto jQuery per un oggetto DOM crudo. È possibile utilizzare il metodo [index] o get.

var textBox = $('input[type=text]')[0].value; 

Se si dispone di più ingressi, è necessario eseguirne il ciclo.

function checking() { 
    var empty = 0; 
    $('input[type=text]').each(function(){ 
     if (this.value == "") { 
      empty++; 
      $("#error").show('slow'); 
     } 
    }) 
    alert(empty + ' empty input(s)') 
} 
+0

Ciao! Anche questo non ha funzionato. Ho 6 caselle di testo e due di queste caselle di testo hanno valori, influisce sulla condizione? Quello che sto cercando di fare è una volta che l'utente fa clic sul pulsante di invio e una qualsiasi delle caselle di testo rimanenti è vuota e l'avviso di errore verrà visualizzato. Grazie. – ray

+0

@ray Ciao, prova il codice aggiornato. – undefined

+0

Ciao! Non va bene, penso di non dover fare il looping. In realtà ho tempo soluzione - controllo> 'function() { \t \t \t se (. Document.getElementById ("entry_0") Valore == "") \t \t { \t \t \t $ (" # errore ") spettacolo ('lento.'); \t \t} \t \t \t \t if (document.getElementById ("entry_1") Valore == "") \t \t { \t \t \t $ ("# errore") spettacolo ('lento.'); \t \t} \t} ' Immagina, se ho 20 caselle di testo. Ecco perché sto cercando di chiamare l'input: l'oggetto testo stesso o l''input del modulo' per chiamare tutte le caselle di testo in una sola funzione. Grazie! – ray

5

Non è possibile utilizzare value con l'oggetto jQuery utilizzare la funzione val(), ma questo controllerà solo la prima casella di testo restituita dal selettore.

Live Demo

function checking() {  
    var textBox = $('input:text').val(); 
    if (textBox == "") { 
     $("#error").show('slow'); 
    } 
} 

È possibile allegare blur evento e fare questo convalida losing focus from each textbox.

Live Demo

$('input:text').blur(function() {  
    var textBox = $('input:text').val(); 
    if (textBox == "") { 
     $("#error").show('slow'); 
    } 
}); 

convalida su submit button click Accordi ng alla discussione con OP

Live Demo

$('#btnSubmit').click(function() { 
    $("#error").hide();  
    $('input:text').each(function(){ 
     if($(this).val().length == 0) 
      $("#error").show('slow'); 
    }); 
}); 
+0

Grazie per la risposta immediata, in realtà ho provato pure, ma non va bene. Ho 6 caselle di testo e due di queste caselle di testo hanno valori, influisce sulla condizione? Quello che sto cercando di fare è una volta che l'utente fa clic sul pulsante di invio e una qualsiasi delle caselle di testo rimanenti è vuota e l'avviso di errore verrà visualizzato. – ray

+0

Aggiorna la mia risposta, spero che ti aiuterà a fare quello che vuoi. – Adil

+1

@Adil Questa è una risposta eccellente e molto informativa. +1. – tgriffiths

1

Prova di questo codice:

var textBox = $('input:text').val(); 

if (textBox==""){ 
    $("#error").show('slow'); 
} 
Problemi correlati