web-dev-qa-db-fra.com

validation jquery: empêcher l'envoi du formulaire

Par l'utilisation du plugin jQuery Validation, j'essaie de bien valider mon formulaire. Lorsque la validation réussit, je veux qu'un javascript se déclenche avec les valeurs du formulaire, puis s'arrête. aucune soumission réelle de formulaire avec navigation sur un nouveau/même site.

est-ce possible avec la validation jquery?

26
alex

Vous pouvez essayer ceci ( exemple ):

$(function(){
    $("#myform").validate();    
    $("#myform").on('submit', function(e) {
        var isvalid = $("#myform").valid();
        if (isvalid) {
            e.preventDefault();
            alert(getvalues("myform"));
        }
    });
});

function getvalues(f)
{
    var form=$("#"+f);
    var str='';
    $("input:not('input:submit')", form).each(function(i){
        str+='\n'+$(this).prop('name')+': '+$(this).val();
    });
    return str;
}
46
The Alpha

Oui:

$("form").submit(function(event) {
    if (somethingIsInvalid) { 
      event.preventDefault();
    }
});
9
undefined

Il y a une méthode appelée .valid () qui retourne vrai au cas où il n'y a pas d'erreurs dans votre formulaire, vous pouvez donc valider d'abord avec ceci et ensuite envoyer le formulaire voici la documentation

http://docs.jquery.com/Plugins/Validation/valid

6
Jorge
$("#form").validate({
  rules: {...},
  submitHandler: function(form, event) { 
    event.preventDefault();
    alert("Do some stuff...");
    //submit via ajax
  }
});
4
que1326