我想使用parsley.js验证表单,然后通过jQuery.post
提交,这需要阻止默认表单提交,但它没有按预期工作。
form:submit
的{{3}}说:
在表单验证成功之后并且在实际提交表单之前触发。返回
false
以中断提交。
但是,我无法使用...以下代码更新#alert
元素,但随后通过默认浏览器级别请求提交表单。 $.post
来电似乎无法执行..无论如何,服务器都没有收到过。{/ p>
$('.contact-form form').parsley().on('form:submit', function() {
$('#alert')
.text('Sending...')
$.post({
url: '/contact',
data: form.serialize(),
success: function() {
$('#alert')
.text('Message successfully sent.')
},
error: function() {
$('#alert')
.removeClass('alert-success')
.addClass('alert-danger')
.text([
'Sorry, a server error has occurred. ',
'Your message was not sent.'
].join())
}
})
return false
})
以下按预期工作,执行验证但未提交表单
$('.contact-form form').parsley().on('form:submit', function() {
return false
}
我尝试过这样的事情无济于事:
$('.contact-form form').parsley().on('form:submit', function(formInstance) {
formInstance.submitEvent.preventDefault()
}
所以我很难过......
此问题与docs不同,后者涉及将jQuery的submit
方法绑定到input
元素而不是form
。
答案 0 :(得分:2)
在return false
之前的代码中有一个错误,它会中断函数,从而永远无法正常返回?