154 votes

Comment ajouter des champs supplémentaires au formulaire avant de le soumettre ?

Existe-t-il un moyen d'utiliser javascript et JQuery pour ajouter des champs supplémentaires à envoyer à partir d'un formulaire HTTP par POST ?

Je veux dire :

<form action="somewhere" method="POST" id="form">
  <input type="submit" name="submit" value="Send" />
</form>

<script type="text/javascript">
  $("#form").submit( function(eventObj) {
    // I want to add a field "field" with value "value" here
    // to the POST data

    return true;
  });
</script>

215voto

Oui, vous pouvez essayer avec des paramètres cachés.

  $("#form").submit( function(eventObj) {
      $("<input />").attr("type", "hidden")
          .attr("name", "something")
          .attr("value", "something")
          .appendTo("#form");
      return true;
  });

66voto

Khawer Zeshan Points 6921

Essayez ça :

$('#form').submit(function(eventObj) {
    $(this).append('<input type="hidden" name="field_name" value="value" /> ');
    return true;
});

18voto

de_nuit Points 262
$('#form').append('<input type="text" value="'+yourValue+'" />');

13voto

Mohammad Adil Points 25444

Vous pouvez ajouter un hidden input avec la valeur que vous voulez envoyer :

$('#form').submit(function(eventObj) {
    $(this).append('<input type="hidden" name="someName" value="someValue">');
    return true;
});

12voto

Jeff Lowery Points 125

Ça marche :

var form = $(this).closest('form');

form = form.serializeArray();

form = form.concat([
    {name: "customer_id", value: window.username},
    {name: "post_action", value: "Update Information"}
]);

$.post('/change-user-details', form, function(d) {
    if (d.error) {
        alert("There was a problem updating your user details")
    } 
});

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