【发布时间】:2012-04-24 21:02:04
【问题描述】:
通过使用 jQuery 插件验证,我正在尝试验证我的表单。当验证通过时,我希望 javascript 使用表单中的值触发然后停止。浏览到新的/相同的站点时没有实际的表单提交。
这可以通过 jquery 验证实现吗?
【问题讨论】:
通过使用 jQuery 插件验证,我正在尝试验证我的表单。当验证通过时,我希望 javascript 使用表单中的值触发然后停止。浏览到新的/相同的站点时没有实际的表单提交。
这可以通过 jquery 验证实现吗?
【问题讨论】:
你可以试试这个(Example):
$(function(){
$("#myform").validate();
$("#myform").on('submit', function(e) {
var isvalid = $("#myform").valid();
if (isvalid) {
e.preventDefault();
alert(getvalues("myform"));
}
});
});
function getvalues(f)
{
var form=$("#"+f);
var str='';
$("input:not('input:submit')", form).each(function(i){
str+='\n'+$(this).prop('name')+': '+$(this).val();
});
return str;
}
【讨论】:
valid() 返回 false,但我无法停止使用 return false 或 e.preventDefault() 或两者都提交的表单!
是的:
$("form").submit(function(event) {
if (somethingIsInvalid) {
event.preventDefault();
}
});
【讨论】:
$("#form").validate({
rules: {...},
submitHandler: function(form, event) {
event.preventDefault();
alert("Do some stuff...");
//submit via ajax
}
});
【讨论】:
submitHandler 在提交无效表单时被触发。您可能需要包含 invalidHandler 以防止表单在无效时提交。
有一个名为 .valid() 的方法在表单中没有错误的情况下返回 true,因此您可以先使用它进行验证,然后将表单发送到此处的文档
【讨论】:
true。