Попытка отправить форму с помощью live (), делегата и bind () - PullRequest
2 голосов
/ 02 февраля 2012

Если форма недействительна, я хочу напечатать сообщение в консоли браузера.

Складной код с bind работает:

jQuery(document).ready(function () {
    $('form').bind('submit', function () {
        if ($j(this).valid() == false) {
            console.log("Warning: form not valid");
        };
    });
});

и работаета также, когда я заменяю связывание на submit :

$('form').submit(function () {

Но не работает, когда я использую делегат :

$('body').delegate('form', 'submit', function () {

И даже с live безуспешно:

$('form').live('submit', function () {

Форма не вставлена ​​динамически.В чем может быть причина того, что live и делегат не работают ??

EDIT

Я только что узнал, что jquery.validate.min.js вызывалпроблема.Хм, но как я могу предотвратить предотвращение моих собственных событий формы?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2012

У вас будет другой обработчик либо элемента form, либо предка между form и body, который препятствует распространению события, либо путем:

  1. ВызовstopPropagation() для объекта события
  2. Вызов stopImmediatePropagation() для объекта события
  3. return false 'из обработчика события.

Вам нужно найти этот обработчик и остановить его.Имейте в виду, что это может быть работа плагина, который вы также включили.

0 голосов
/ 02 февраля 2012

Полагаю, что вы return false из обратного вызова, таким образом, предотвращаете срабатывание этого обратного вызова.

Смотрите это JSFiddle DEMO

...