0%

validate验证不通过确提交了

文章字数:257,阅读全文大约需要1分钟

js的表单验证工具validate,设置了debug:true(仅验证不提交)和submitHandler(处理提交的函数)结果还是提交了,并且验证失败也会提交

错误代码

1
2
3
4
5
<form action="/xxx" id='submitId'>
<input name="name" name="name" type="txt">
</form>
...
<button onclick="javascript:document.getElementById('submitId').submit()">ok<button/>

为了样式好调,我用form.submit()提交了表单,这样的操作似乎跳过了验证阶段。

修改后

1
2
3
4
5
6
<form action="/xxx" id='submitId'>
<input name="name" name="name" type="txt">
<input type="submit" style="display:none" id="submit" />
</form>
...
<button onclick="javascript:document.getElementById('submit').click()">ok<button/>

修改成点击input提交就可以了

其它注意点

  1. 多次提交
    1
    2
    3
    4
    //通过id选中表单并提交
    submitHandler:function (form) {
    $("#submitId").submit();
    }
    这样会一直提交表单,造成stack溢出

修改点

1
2
3
4
//直接用入参提交表单
submitHandler:function (form) {
form.submit();
}