2 votes

Le formulaire est toujours soumis après l'échec de la validation JS

J'ai un formulaire et j'essaie de valider des champs qui ont la même classe. required

<form id="HotelBooking" method="post" action="#">
<input type="text" class="required"  name="vardas" />
<input type="text" class="required"  name="pav" />
<input type="text" class="required"  name="tel" />
<input type="submit"  name="sb"  value="Tvirtinti" onclick="tikrinti();"/>
</form>

Le code JS fonctionne pour le premier champ, il affiche une erreur, mais le formulaire est toujours soumis et réinitialise les champs.

$(document).ready(function() { 
  $('#HotelBooking').submit(function () {
  $(".required").each(function(){
            if($(this).val().length == 0)
            {
               alert('Please Enter your value');
               $(this).focus(); 
               return false;
            }
        });
 });   
});

Qu'est-ce que je fais de travers ?

4voto

Vohuman Points 79122

Vous devez mettre le return false en dehors de each() :

$('#HotelBooking').submit(function () {
    var errors = 0
    $(".required").each(function(){
        if( $.trim($(this).val()).length == 0) { // make sure that there is no extra whitespace
           errors++ 
        }
    });
    if (errors > 0) {
       alert('please Enter your value for ' +errors+ 'remaining fields')
       return false;
    } 
});

2voto

powerbuoy Points 4644

Le problème, c'est que vous renvoyez false de la each() -et non la fonction submit() -fonction.

Voici une solution :

$(document).ready(function () {
    $('#HotelBooking').submit(function () {
        var valid = true;

        $('.required').each(function () {
            if ($(this).val().length == 0) {
                alert('Please Enter your value');
                $(this).focus();

                valid = false;
            }
        });

        return valid;
    });   
});

Edit : Woops, trop tard

0voto

user3518714 Points 1
     <script type="text/javascript">
         $('#submitRegister').click( function(){
         var validation =  $('#connect').vValidator('validate');
         Window.alert("hii");
         });
      </script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X