我对 jquery.validate 和 jquery.validate.unobtrusive 有奇怪的行为
如果我像这样调用提交 mvc 表单,页面会重新加载并且验证正常工作
<a href="#" onclick="document.getElementById('myform').submit();">
<div class="span2 btn">
<div class="span2 top10 playText">
</div>
</div>
</a>
如果提交表单
<input id="subBtn" type="image"
src="/images/free.jpg"class="main_img" />
客户端验证
有什么区别?如何让它始终通过客户端工作?
最佳答案
HTMLFormElement.submit()
DOM 元素(不是 jQuery 对象)上的方法提交表单而不调用任何附加的 onsubmit
事件处理程序,因此您的验证被绕过。
相反,使用提交按钮或图像会调用任何提交事件处理程序。
您可以改用 jQuery 提交方法:
$('#myform').submit();
这将调用任何提交处理程序。
请注意,如果您的验证是您自己的 JavaScript 或 jQuery 验证那么这没问题,如果您使用的是 HTML5 验证那么您将必须触发提交按钮的点击事件:
$('#subBtn').trigger('click');
关于javascript - 为什么 JavaScript 提交重新加载页面并通过按钮提交进行客户端页面验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26512207/