JavaScript表单提交不发送输入类型=submit的值
JavaScript form submission doesn't send value of input type=submit
在某些情况下,我使用jQuery来自动提交表单。下面是我的代码:
$("form [data-autosubmit]").closest("form").submit();
它工作,但是它不发送input type=submit
按钮的名称和值。
详细说明,下面的代码:
<form method="POST">
<input type="text" name="input" value="text they entered">
<input type="submit" name="submit" value="Submit">
</form>
当用户提交时,将发送以下POSTdata:
input: text they entered
submit: Submit
但是当JavaScript提交表单时,只发送这个POSTdata:
input: text they entered
我的PHP脚本依赖于POSTdata中存在的"submit"值。
我想我可以做:
$("form [data-autosubmit]").closest("form").find("input[type=submit]").click();
但是,当表单上有一个submit
事件用于此目的时,它似乎违背了逻辑。
HTML form
是为了支持多个submit
输入而构建的(例如,相同的表单可以有"插入"answers"编辑"按钮)。因此,表单依赖于点击在_POST
提交中实际注册所选字段。基本上,HTML允许这样的表单:
<form [...]>
<input type="submit" name="Insert" value="Insert">
<input type="submit" name="Update" value="Update">
</form>
在服务器端像这样处理:
if(!empty($_REQUEST['Update'])){
//Run update logic here..
}
elseif(!empty($_REQUEST['Insert'])){
//Run insert logic here...
}
如果Javascript submit()
函数在POST
数组中注册了两个按钮,它将破坏使用此有效标记/逻辑的应用程序,因此它们默认省略submit
输入。
所以你的Javascript解决方案(触发点击提交按钮,而不仅仅是submit()
表单)是正确的方法。
相关文章:
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 如何在DOM元素上按类型构建此函数
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何从querySelectorAll中获取按钮类型
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何将具有文本类型值的var放入jQuery函数中
- javascript解释器如何理解变量的数据类型
- 如果条件表达式,如何确定输入字段类型“submit”的当前 ID 以在 PHP 中使用
- 如何使用jquery或javascript禁用submit类型的按钮标记
- 如何为输入类型submit和onclick javascript函数指定target_blank
- onclick输入类型submit
- 为什么当点击输入类型submit时,on('submit')函数从不被调用?
- 我怎么能得到表单验证工作时,使用"共享"按钮(而不是“submit”类型的输入元素)
- 如何创建一个输入类型'button'就像type='submit'
- 更改输入类型submit到标记,它必须与input>submit完全相同
- 输入类型=“file".submit()不工作IE8
- JavaScript表单提交不发送输入类型=submit的值
- 类型错误:在使用 ng-submit 时无法读取未定义的属性“$valid”