Eh bien, ce n'est pas une question mais juste pour mon information (car je peux penser à environ 4 solutions de contournement différentes pour que cela fonctionne. Cependant, j'ai un formulaire (rien de spécial) mais le bouton de soumission a quelque chose à voir avec la valeur spécifique de
.<input type='submit' name='submitDocUpdate' value='Save'/>
Après avoir soumis le formulaire, je vérifie le nom.
if(isset($_POST['submitDocUpdate'])){ //do stuff
Cependant, une fois, j'ai essayé de soumettre le formulaire via Javascript au lieu du bouton Soumettre.
document.getElementById("myForm").submit();
Tout fonctionne bien sauf 1 problème. Lorsque je regarde la valeur $_POST soumise via la méthode javascript, elle n'inclut pas SubmitDocUpdate. J'obtiens toutes les autres valeurs du formulaire mais pas la valeur du bouton de soumission.
Comme je l'ai dit, je peux penser à plusieurs façons de contourner ce problème (en utilisant une variable cachée, en vérifiant isset sur une autre variable de formulaire, etc.), mais je me demande simplement si c'est le comportement correct pour Submit() car du Cela ne me semble pas très intuitif. Merci d'avance.
Utilisez jQuery 1.0 ou supérieur :
$('input[type="submit"]').click();
J'étais en train de résoudre le même problème lorsque je suis tombé sur ce post. click() sans aucun paramètre déclenche un événement de clic sur n'importe quel élément que vous sélectionnez : http://api.jquery.com/click/
Oui, c'est un comportement correct
HTMLFormElement.submit()
La raison pour laquelle la valeur du bouton de soumission n'est pas envoyée est que les formulaires HTML sont conçus pour envoyer la valeur du bouton de soumission sur lequel l'utilisateur clique (ou est activé). Cela permet plusieurs boutons de soumission par formulaire, par exemple dans les scénarios où vous avez besoin d'actions « prévisualiser » et « enregistrer ».
Puisque vous soumettez le formulaire par programme, il n'y a aucune action explicite de l'utilisateur sur le seul bouton de soumission, donc rien n'est envoyé.