任何人都可以解释为什么这行代码会提交我的表单:
document.myForm.submit();
但这条线不会?:
$('#myForm').submit();
其他所有内容都完全相同,但在我的javascript中切换出那一行会产生巨大的差异。我没有任何名为“submit”的输入元素,以防你们有任何疑惑。
编辑:我的表单元素的id和名称都是“myForm”
答案 0 :(得分:2)
document.myForm.submit();
指
<form name="myForm">
<小时/> 但是
$('#myForm').submit();
指
<form id="myForm">
<小时/> 因此,请使用attribute equals selector
$('form[name="myForm"]').submit();
答案 1 :(得分:1)
document.myForm.submit();
引用name
的{{1}}属性,form
必须为myForm
,因为它正在运行。
jQuery代码段$('#myForm').submit();
正在查找ID为myForm
的表单,而不是按名称查找,因此如果您的表单没有将id
属性设置为{{1}这就是你看到这种行为的原因。显然后一行代码也要求页面上包含jQuery才能工作,因为它不是vanilla JS。
答案 2 :(得分:1)
这最终与jQuery的验证插件发生冲突。我项目中的其他人将此插件添加到页面中,因此我没有意识到$('#myForm')。submit()版本触发了验证并阻止了表单提交。
感谢所有回复者的帮助!