Nun, das ist keine Frage, sondern nur zu meiner Information (da mir etwa 4 verschiedene Problemumgehungen einfallen, damit es funktioniert. Ich habe jedoch ein Formular (nichts Besonderes), aber die Schaltfläche „Senden“ hat etwas mit dem spezifischen Wert von
zu tun .<input type='submit' name='submitDocUpdate' value='Save'/>
Nach dem Absenden des Formulars überprüfe ich den Namen.
if(isset($_POST['submitDocUpdate'])){ //do stuff
Allerdings habe ich einmal versucht, das Formular über Javascript statt über den Absenden-Button abzuschicken.
document.getElementById("myForm").submit();
Alles funktioniert gut, bis auf ein Problem. Wenn ich mir den über die Javascript-Methode übermittelten $_POST-Wert ansehe, enthält er SubmitDocUpdate nicht. Ich erhalte alle anderen Werte des Formulars, aber nicht den Wert der Schaltfläche „Senden“.
Wie gesagt, ich kann mir ein paar Möglichkeiten vorstellen, das Problem zu umgehen (Verwendung einer versteckten Variablen, Überprüfung von Isset auf einer anderen Formularvariablen usw.), aber ich frage mich nur, ob dies das richtige Verhalten für Submit() ist, weil of the This scheint mir nicht sehr intuitiv zu sein. Dank im Voraus.
使用 jQuery 1.0 或更高版本:
$('input[type="submit"]').click();
当我偶然发现这篇文章时,我实际上正在解决同样的问题。不带任何参数的 click() 会在您选择的任何元素上触发单击事件: http://api.jquery.com/click/
是的,这是
的正确行为HTMLFormElement.submit()
未发送提交按钮值的原因是 HTML 表单的设计是为了发送被单击(或以其他方式激活)的提交按钮的值。这允许每个表单有多个提交按钮,例如您需要“预览”和“保存”操作的场景。
由于您以编程方式提交表单,因此在单个提交按钮上没有显式的用户操作,因此不会发送任何内容。