我在点击提交按钮后尝试验证表单,因此我阻止表单自动发布并使用preventDefault()
刷新页面。在调用preventDefault()
之后,我调用另一个函数进行验证,如下所示:
$("#submit").click(function(e) {
e.preventDefault();
validate();
});
此处,#submit
是提交输入元素的ID。
在validate()
结束时,我尝试在表单元素submit()
上调用#homeForm
,但它似乎无法触发。
validate() {
....
console.log('test'); // this is firing
$('#homeForm').submit();
}
我使用了其他一些Stack Overflow答案,包括this one来解决这个问题,但我不确定为什么它不起作用。什么可能阻止submit()
函数被触发?
修改:我已在HTML中添加了一些此表单的内容
<form id="homeForm">
....
<input id="submit" class="submit" type="submit" name="submit" value="Submit" action="javascript:void(0);">
</form>
答案 0 :(得分:2)
表单action
属性应属于<form>
元素,并且应该(可能)引用网址
答案 1 :(得分:0)
更简单的方法是使用提交按钮调用validate()
函数,然后在验证函数中,如果所有函数都经过验证,则使用$('#homeForm').submit()
提交表单。通过这种方式,您永远不会使用preventDefault
,无论出于何种原因,我认为这是{
>。
编辑:当然,您的按钮类型不应为此“提交”。