谁能解释一下为什么这行代码会提交我的表单:
document.myForm.submit();
但是这条线不会?:
$('#myForm').submit();
其他一切都完全相同,但是在我的 javascript 中切换出那一行会有很大的不同。我没有任何名称为“提交”的输入元素,以防你们中的任何人想知道。
编辑:我的表单元素的 id 和名称都是“myForm”
谁能解释一下为什么这行代码会提交我的表单:
document.myForm.submit();
但是这条线不会?:
$('#myForm').submit();
其他一切都完全相同,但是在我的 javascript 中切换出那一行会有很大的不同。我没有任何名称为“提交”的输入元素,以防你们中的任何人想知道。
编辑:我的表单元素的 id 和名称都是“myForm”
document.myForm.submit();
指
<form name="myForm">
$('#myForm').submit();
指
<form id="myForm">
$('form[name="myForm"]').submit();
document.myForm.submit();
正在引用which must be的name
属性,因为它正在工作。form
myForm
jQuery 代码片段$('#myForm').submit();
正在寻找具有 ID 的表单myForm
,而不是按名称查找,因此,如果您的表单没有将id
属性设置为myForm
这就是您看到此行为的原因。显然,后一行代码也需要页面中包含的 jQuery 才能工作,因为它不是 vanilla JS。
这最终与 jQuery 的验证插件发生冲突。我项目中的其他人将此插件添加到页面中,因此我没有意识到 $('#myForm').submit() 版本正在触发该验证并阻止表单提交。
我感谢所有回复的人的帮助!