Fonction Jquery avant la soumission du formulaire

j'essaie de lancer une fonction en utilisant Jquery lorsque le bouton soumettre le formulaire est cliqué, mais la fonction doit démarrer avant que le formulaire ne soit réellement soumis.

j'essaie de copier certains attributs de la balise div dans des champs de texte cachés au moment de la soumission, puis de soumettre le formulaire.

j'ai réussi à ce que cela fonctionne en utilisant la fonction mouseover (lorsque le bouton Soumettre est survolé) mais cela ne fonctionnera pas sur les appareils mobiles en utilisant le toucher.

$("#create-card-process.design #submit").on("mouseover", function () {
    var textStyleCSS = $("#cover-text").attr('style');
    var textbackgroundCSS = $("#cover-text-wrapper").attr('style');
    $("#cover_text_css").val(textStyleCSS);
    $("#cover_text_background_css").val(textbackgroundCSS);
});

j'ai joué un peu avec la .soumettre la fonction, mais les valeurs ne sont pas sauvegardées dans les champs car la fonction s'allume lorsque le formulaire est soumis et pas avant.

Merci beaucoup

48
demandé sur starsplusplus 2014-02-21 19:42:52

5 réponses

vous pouvez utiliser la fonction onsubmit.

si vous retournez false le formulaire ne sera pas soumis. Lisez à propos de ici .

$('#myform').submit(function() {
  // your code here
});
78
répondu kartikluke 2014-02-21 15:46:58
$('#myform').submit(function() {
  // your code here
})

ci-dessus est PAS travailler Firefox . Le formulaire sera simplement soumettre sans exécuter votre code d'abord. Les questions similaires sont également mentionnées ailleurs... comme cette question . Le travail autour de vous être

$('#myform').submit(function(event) {

 event.preventDefault(); //this will prevent the default submit

  // your code here

 $(this).unbind('submit').submit(); // continue the submit unbind preventDefault
})
34
répondu Waqas Bukhary 2017-05-23 10:31:30

vous pouvez utiliser un certain div ou span au lieu de bouton et puis sur appel de clic une certaine fonction qui soumet le formulaire à la fin.

<form id="my_form">
   <span onclick="submit()">submit</span>
</form>

<script>
   function submit()
   {   
       //do something
       $("#my_form").submit();
   }
</script>
3
répondu Skriptotajs 2014-02-21 15:51:39

Aghh... il me manquait un code quand j'ai essayé le .fonction envoyer.....

Cela fonctionne:

$('#create-card-process.design').submit(function() {
var textStyleCSS = $("#cover-text").attr('style');
var textbackgroundCSS = $("#cover-text-wrapper").attr('style');
$("#cover_text_css").val(textStyleCSS);
$("#cover_text_background_css").val(textbackgroundCSS);
});

Merci pour tous les commentaires.

2
répondu Matt Price 2014-02-21 15:51:36

juste parce que j'ai fait cette erreur à chaque fois en utilisant la fonction soumettre.

C'est le code complet dont vous avez besoin:

ajouter l'id " yourid " à la balise HTML.

<form id="yourid" action='XXX' name='form' method='POST' accept-charset='UTF-8' enctype='multipart/form-data'>

le code jQuery:

$('#yourid').submit(function() {
  // do something
});
0
répondu meck373 2017-08-26 14:17:00