好吧,这不是一个问题,而只是为了我的信息(因为我可以想到大约 4 种不同的解决方法可以使其工作。但是我有一个表单(没什么特别的),但是提交按钮有与之相关的特定值。
<input type='submit' name='submitDocUpdate' value='Save'/>
提交表单后,我会检查该名称。
if(isset($_POST['submitDocUpdate'])){ //do stuff
但是,有一次我尝试通过 Javascript 提交表单,而不是提交按钮。
document.getElementById("myForm").submit();
除了 1 个问题外,一切正常。当我查看通过 javascript 方法提交的 $_POST 值时,它不包括 SubmitDocUpdate。我获得了表单的所有其他值,但没有获得提交按钮值。
就像我说的,我可以想出几种方法来解决它(使用隐藏变量,检查另一个表单变量上的 isset 等),但我只是想知道这是否是 Submit() 的正确行为,因为对我来说这似乎不太直观。提前致谢。
使用 jQuery 1.0 或更高版本:
$('input[type="submit"]').click();
当我偶然发现这篇文章时,我实际上正在解决同样的问题。不带任何参数的 click() 会在您选择的任何元素上触发单击事件: http://api.jquery.com/click/
是的,这是
的正确行为HTMLFormElement.submit()
未发送提交按钮值的原因是 HTML 表单的设计是为了发送被单击(或以其他方式激活)的提交按钮的值。这允许每个表单有多个提交按钮,例如您需要“预览”和“保存”操作的场景。
由于您以编程方式提交表单,因此在单个提交按钮上没有显式的用户操作,因此不会发送任何内容。