form:submit 无法通过 return false 防止默认
form:submit unable to prevent default with return false
我想用 parsley.js 验证表单,然后通过 jQuery.post
提交,这需要阻止默认表单提交,但它没有按预期工作。
对于form:submit
的docs说:
Triggered when after a form validation succeeds and before the form is actually submitted. Return false
to interrupt submission.
但是,我无法让它工作...以下代码更新 #alert
元素,然后通过默认浏览器级别请求提交表单。 $.post
调用似乎没有被执行。无论如何服务器都没有收到它。
$('.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()
}
所以我很难过...
此问题与 Preventing form submission after validation by parsley.js 不同,后者涉及将 jQuery 的 submit
方法绑定到 input
元素而不是 form
。
return false
之前的代码中一定有错误中断了函数,因此永远无法正确到达 return?
我想用 parsley.js 验证表单,然后通过 jQuery.post
提交,这需要阻止默认表单提交,但它没有按预期工作。
对于form:submit
的docs说:
Triggered when after a form validation succeeds and before the form is actually submitted. Return
false
to interrupt submission.
但是,我无法让它工作...以下代码更新 #alert
元素,然后通过默认浏览器级别请求提交表单。 $.post
调用似乎没有被执行。无论如何服务器都没有收到它。
$('.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()
}
所以我很难过...
此问题与 Preventing form submission after validation by parsley.js 不同,后者涉及将 jQuery 的 submit
方法绑定到 input
元素而不是 form
。
return false
之前的代码中一定有错误中断了函数,因此永远无法正确到达 return?