Как предотвратить отправку программной формы из JS? - PullRequest
1 голос
/ 21 марта 2011

У меня есть внешняя библиотека, которая вызывает form.submit (). Неважно, что я делаю, я не могу поймать событие, когда оно называется так прямо.

пример: http://jsfiddle.net/cwolves/yXsWc/

Ответы [ 2 ]

4 голосов
/ 21 марта 2011

Вместо того, чтобы перехватывать событие, вы пытались перехватить сам вызов submit()?Вы можете сделать что-то вроде замены функции submit() по умолчанию на любой из ваших вариантов, который отправляется, только если установлен какой-либо флаг.Например:

var formElem = document.getElementById("myForm");
formElem.oldSubmit = formElem.submit;
formElem.submit = function(myFlag) {
    if (myFlag) {
        document.getElementById("myForm").oldSubmit();
    }
};
0 голосов
/ 21 марта 2011

Это может быть немного хакерским, но вы можете отсоединить событие click от этого определенного элемента, а затем повторно связать его, чтобы работать так, как вы хотите.

$('button').unbind('click').click(form.onsubmit);

jsFiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...