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