提交事件未捕获提交类型输入
submit event not capturing submit type input
我有一个Ajax GET请求,如下所述
$(document).ready(function() {
$('#comment-edit-form').submit(function() {
$.ajax({
type: $(this).attr('method'),
url: '/comments/edit/' + $(this).attr('comment_pk') + '/',
data: $(this).serialize(),
success: function(data){}
});
return false;
});
});
形式是这样的
<form method="get" id="comment-edit-form">
..
<input class="btn btn-primary" type="submit" name="preview" value="Preview">
<input class="btn btn-primary" type="submit" name="submit" value="Submit">
</form>
在这个表格中,我有两个不同的提交按钮!每个按钮都有不同的操作!
我跟踪的 GET 请求 URL 如下所示
?input1=1&input2=2...
我期待?input1=1&input2=2&submit=
或?input1=1&input2=2&preview=
为什么我无法在请求中观察到"提交"或"预览"名称?
这是因为jQuery只序列化具有未submit,button, image, file or reset
输入类型的节点类型input, select, textarea and keygen
。
查看 jQuery 源代码,您可以知道表单元素的输入类型是根据以下正则表达式检查的:
/^(?:submit|button|image|reset|file)$/i
此检查在代码中由.serialize
调用的.serializeArray
。
对于感兴趣的读者 - 这是完整的过滤器:
return this.name && // has a name
!jQuery(this).is(":disabled") && // is not a disabled input
rsubmittable.test(this.nodeName) && // is either input, select,textarea or keygen
!rsubmitterTypes.test(type) && // the test explained above
(this.checked || !manipulation_rcheckableType.test(type)); // checked
相关文章:
- 在输入类型提交按钮上调用 C# 方法
- 使用 AJAX 在页面加载时自动提交表单并获得 html 类型结果
- 我怎样才能使一个类型=“;提交”;在css中看起来像一个type="按钮”;
- Facebook-Can't提交新的Open Graph类型,提交为灰色.如何提交
- 提交输入类型=“;图像“;到另一个servlet时,未能返回任何参数
- 可以使用禁用<输入类型=“;提交”>无论如何都要被黑客入侵才能提交
- 当输入类型为“”时如何提交表单;提交”;使用javascript的内部表单
- 按钮对链接对输入类型=“;提交”;在表格上
- 如何为表单提交添加选择器,仅当特定按钮类型导致表单提交时
- 类型=按钮和类型=提交,按回车键
- HTML5 必填字段,但不是“提交”类型的按钮
- 无法在使用 Java 脚本创建的表单中设置提交类型输入
- 如何仅在一种提交类型上应用表单onSubmit
- 我想更改提交类型按钮的值
- 提交事件未捕获提交类型输入
- Onclick事件不适用于提交类型按钮
- 火灾事件由"value="提交"类型=“button"——Javascript
- 使用jQuery更改表单提交类型
- 获取提交类型以发布其值
- 表单上有2个按钮,只有1个带有提交类型,但都触发提交事件