web-dev-qa-db-fra.com

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 la soumission?

44
polyhedron

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
});
37
lonesomeday

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);
});
25
Gondrup

Vous pouvez faire quelque chose comme ça:

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

Comment soumettez-vous le formulaire? s'il s'agit d'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?

2
samarjit samanta