2009-11-12 7 views
0

Je n'utilise que le plugin de validation JQuery. j'ai la spécification suivante: 'si le formulaire n'est pas utilisé dans 10 secondes, donnez un avertissement à l'utilisateur, s'il ne fait rien, soumettez-le quand même'Validation Jquery: soumettre le formulaire avec javascript sans validation

en plus du minuteur etc. pour soumettre le formulaire:

timeoutId = setTimeout(function() { 

$("#session_expired").val("true"); 
$("form:first").validate({ 
        onsubmit: false 
       }); 
$("form:first").submit(); 
}, 10000); 

ce qu'il fait: il définit une certaine valeur de champ caché, puis il soumet le formulaire. J'ai ajouté la fonction validate pour m'assurer qu'elle ne valide pas dans ce cas. Vous l'avez peut-être deviné: ça ne marche pas.

Quelqu'un a-t-il des indices?

Michel

+0

Où est-il défaillant? – bang

+0

bon :) il ne soumet pas, il marque toujours tous les champs requis sans valeur comme 'invalide' et il ne soumet pas – Michel

Répondre

1

Essayez d'utiliser la méthode DOM directement au lieu de jQuery soumettre méthode pour le soumettre:

Remplacer

$("form:first").submit(); 

avec:

document.forms[0].submit(); 

Je pense que:

$("form:first").validate({ onsubmit: false }); 

s'applique uniquement lorsque le formulaire est envoyé par un bouton d'envoi.

+0

Je pense que c'est une bonne supposition (je ne suis pas sûr) mais je sais que cela fonctionne. Merci! – Michel

0

Je supprimerait chaque partie de la fonction, puis le tester jusqu'à ce que je peux trouver quelle partie de la fonction est un échec. Aussi nous firebug et console.log pour suivre ce qui se passe dans la fonction. par exemple.

timeoutId = setTimeout(function() { 
console.log('timeout') 
}, 10000); 
+0

il lance la fonction ($ ("form: first"). Submit() ;) après 10 secondes, mais la validation ne s'arrête pas donc je pense peut-être le $ ("form: first"). validate ({onsubmit: false}); n'est pas correct – Michel