2016-07-13 3 views
1

Я хочу подтвердить форму с помощью 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.

+0

Вы пробовали 'formInstance.preventDefault()'? –

+0

Да Я пробовал 'formInstance.preventDefault()' Также возможный дубликат, связанный с тем, связан с событием jQuery '.submit', связанным с элементом' input', а не с 'form'. Так что моя проблема не та же. – Mr5o1

ответ

2

Должна быть ошибка в коде перед return false, которая прерывает функцию и, следовательно, никогда не возвращается правильно?

+0

Вот и все! 'form.submit' не является функцией ... Спасибо, ты бог среди мужчин. – Mr5o1

 Смежные вопросы

  • Нет связанных вопросов^_^