48 votes

Existe-t-il une option jquery "après envoi"?

J'ai un formulaire qui télécharge un fichier et cible un iframe sur la page. Lorsque l'utilisateur clique sur Soumettre, je souhaite que le contenu du fichier "s'efface".

J'ai essayé

 $('#imageaddform').submit(function(){
    $('#imagefile').val('');
});
 

Mais il efface le formulaire avant la soumission, donc rien n'est jamais téléchargé.

Comment puis-je effacer après l'envoi?

44voto

lonesomeday Points 95456

Si vous n'avez aucun autre gestionnaire lié, vous pouvez faire quelque chose comme ceci:

 $('#imageaddform').submit(function(e) {
    e.preventDefault(); // don't submit multiple times
    this.submit(); // use the native submit method of the form element
    $('#imagefile').val(''); // blank the input
});
 

27voto

Gondrup Points 101

La solution de Lonesomeday a fonctionné pour moi, mais pour Google Chrome, j'ai trouvé qu'elle soumettrait toujours des données de formulaire vides à moins que j'ajoute un délai comme celui-ci:

 $('#imageaddform').submit(function(e) {
    e.preventDefault(); // don't submit multiple times
    this.submit(); // use the native submit method of the form element

    setTimeout(function(){ // Delay for Chrome
        $('#imagefile').val(''); // blank the input
    }, 100);
});
 

4voto

Martin Jespersen Points 13702

Vous pourriez faire quelque chose comme ça:

 $('#imageaddform').submit(function(){
  setTimeout(function() {
    $('#imagefile').val('');
  },100);
});
 

2voto

samarjit samanta Points 629

Comment soumettez-vous le formulaire? si c'est un post de formulaire normal, alors la page n'existera pas dans ce cas, je me demande si vous cherchez à effacer le formulaire avant que la page ne soit actualisée afin que lorsque l'utilisateur revient, il ne voit pas les valeurs renseignées.

Si le formulaire est soumis par ajax, vous pouvez

 function(){
 $('form1')[0].submit();
 clearForm();
}
 

Ai-je raté la question?

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