1

谁能解释一下为什么这行代码会提交我的表单:

document.myForm.submit();

但是这条线不会?:

$('#myForm').submit();

其他一切都完全相同,但是在我的 javascript 中切换出那一行会有很大的不同。我没有任何名称为“提交”的输入元素,以防你们中的任何人想知道。

编辑:我的表单元素的 id 和名称都是“myForm”

4

3 回答 3

2
document.myForm.submit();

<form name="myForm">


$('#myForm').submit();

<form id="myForm">


所以使用属性等于选择器

$('form[name="myForm"]').submit();
于 2013-11-12T16:52:03.507 回答
1

document.myForm.submit();正在引用which must be的name属性,因为它正在工作。formmyForm

jQuery 代码片段$('#myForm').submit();正在寻找具有 ID 的表单myForm,而不是按名称查找,因此,如果您的表单没有将id属性设置为myForm这就是您看到此行为的原因。显然,后一行代码也需要页面中包含的 jQuery 才能工作,因为它不是 vanilla JS。

于 2013-11-12T16:50:31.747 回答
1

这最终与 jQuery 的验证插件发生冲突。我项目中的其他人将此插件添加到页面中,因此我没有意识到 $('#myForm').submit() 版本正在触发该验证并阻止表单提交。

我感谢所有回复的人的帮助!

于 2013-11-12T17:25:37.717 回答