Я хочу подтвердить форму с помощью parsley.js, а затем отправить через jQuery.post
, что требует предотвращения отправки формы по умолчанию, но она не работает должным образом.Форма: отправить не удалось предотвратить по умолчанию с возвратом false
docs для form:submit
сказать:
Срабатывает, когда после того, как форма проверки успешно, и до того, как форма фактически подчинялся. Верните
false
, чтобы прервать подачу.
Однако, я не могу заставить это работать ... следующий код обновляет элемент #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()
}
Так я» m stumped ...
Эта проблема отличается от Preventing form submission after validation by parsley.js, которая относится к привязке jQu ery's submit
, а не form
.
Вы пробовали 'formInstance.preventDefault()'? –
Да Я пробовал 'formInstance.preventDefault()' Также возможный дубликат, связанный с тем, связан с событием jQuery '.submit', связанным с элементом' input', а не с 'form'. Так что моя проблема не та же. – Mr5o1