Jquery formulaire de soumission pour vérifier les champs vides

Comment puis-je utiliser jquery pour vérifier si les champs de texte sont vides quand soumettre sans charger login.php?

<form action="login.php" method="post">
    <label>Login Name:</label>
    <input type="text" name="email" id="log" />
    <label>Password:</label>
    <input type="password" name="password" id="pwd" />
    <input type="submit" name="submit" value="Login" />
</form>

Merci.

20
demandé sur conmen 2013-05-15 08:37:32

8 réponses

Vous pouvez faire ceci:

//  Bind the event handler to the "submit" JavaScript event
$('form').submit(function () {

    // Get the Login Name value and trim it
    var name = $.trim($('#log').val());

    // Check if empty of not
    if (name  === '') {
        alert('Text-field is empty.');
        return false;
    }
});

FIDDLE DEMO

33
répondu palaѕн 2013-05-15 04:40:24

Vous pouvez utiliser 'required' http://jsbin.com/atefuq/1/edit

<form action="login.php" method="post">
    <label>Login Name:</label>
    <input required type="text" name="email" id="log" />
    <label>Password:</label>
    <input required type="password" name="password" id="pwd" />
    <input  required type="submit" name="submit" value="Login" />
</form>
9
répondu NEO 2013-05-15 06:34:20

Une solution simple serait quelque chose comme ceci

$( "form" ).on( "submit", function() { 

   var has_empty = false;

   $(this).find( 'input[type!="hidden"]' ).each(function () {

      if ( ! $(this).val() ) { has_empty = true; return false; }
   });

   if ( has_empty ) { return false; }
});

Remarque:jQuery.on() la méthode n'est disponible que dans la version 1.7+ de jQuery, mais c'est maintenant la méthode préférée pour attacher les gestionnaires d'événements.

ce code boucle toutes les entrées du formulaire et empêche la soumission du formulaire en retournant false si l'une d'elles n'a pas de valeur. Notez qu'il n'affiche aucun type de message à l'utilisateur sur la raison pour laquelle le formulaire n'a pas été soumis (je voudrais fortement recommander l'ajout d'une).

Ou, vous pouvez consulter la jQuery valider plugin. Il fait cela et beaucoup plus.

NB: ce type de technique doit toujours être utilisé en conjonction avec la validation côté serveur.

9
répondu Dominic P 2013-05-15 23:42:28

vous devez ajouter un gestionnaire au formulaire envoyer événement. Dans le Gestionnaire, vous devez vérifier pour chaque champ de texte, sélectionner les champs element et password s'il y a des valeurs non vides.

$('form').submit(function() {
     var res = true;
     // here I am checking for textFields, password fields, and any 
     // drop down you may have in the form
     $("input[type='text'],select,input[type='password']",this).each(function() {
         if($(this).val().trim() == "") {
             res = false; 
         }
     })
     return res; // returning false will prevent the form from submitting.
});
3
répondu vdua 2013-05-15 05:01:31

je déteste vraiment les formulaires qui ne me disent pas quel(s) intrant (s) est/sont absent (s). J'améliore donc la réponse de Dominic - merci pour cela.

dans le fichier css définir la classe "borderR" à la frontière a la couleur rouge.

$('#<form_id>').submit(function () {
    var allIsOk = true;

    // Check if empty of not
    $(this).find( 'input[type!="hidden"]' ).each(function () {
        if ( ! $(this).val() ) { 
            $(this).addClass('borderR').focus();
            allIsOk = false;
        }
    });

    return allIsOk
});
3
répondu Mareg 2015-10-22 19:52:11

vous devriez essayer avec jquery valider plugin :

$('form').validate({
   rules:{
       email:{
          required:true,
          email:true
       }
   },
   messages:{
       email:{
          required:"Email is required",
          email:"Please type a valid email"
        }
   }
})
1
répondu JamesN 2013-05-15 04:46:46
function isEmpty(val) {
if(val.length ==0 || val.length ==null){
    return 'emptyForm';
}else{
    return 'not emptyForm';
}

}

$(document).ready(function(){enter code here
    $( "form" ).submit(function( event ) {
        $('input').each(function(){
           var getInputVal = $(this).val();
            if(isEmpty(getInputVal) =='emptyForm'){
                alert(isEmpty(getInputVal));
            }else{
                alert(isEmpty(getInputVal));
            }
        });
        event.preventDefault();
    });
});
1
répondu Hamzeh Salhi 2016-10-28 09:15:35
var save_val = $("form").serializeArray();
$(save_val).each(function( index, element ) {
    alert(element.name);
    alert(element.val);
});
0
répondu sandeep kumar 2017-07-26 08:27:22