Как мне поймать отправку формы в Javascript onload? - PullRequest
1 голос
/ 15 июля 2011

У меня есть сторонняя система, где я могу добавлять статьи (с (raw) html). Одна страница содержит форму поиска, которая делает сообщение для себя. При загрузке (после публикации) будет добавлена ​​форма отправки javascript с использованием javascript - например,

function redir() {
   document.myform.submit();
}
.... //some other stuff here
redir();

Я не буду вдаваться в детали дизайна (я знаю, почему он спроектирован таким образом, но не могу изменить его - я знаю, его дерьмовый дизайн!)

Есть ли способ поймать эту отправку "onload"?

Я пробовал это:

var sform = document.getElementsByName('myform');
try {
    sform.addEventListener("submit", alert('Gotcha!'));
} catch(e) {
    sform.attachEvent("submit", alert('Gotcha!')); //Internet Explorer
}

Также jQuery:

$('myform').submit(function() {
    alert('Gotcha!');
    return false;
});

Я не могу поймать событие. Я могу переопределить метод:

redir = function(){
    //Empty - override
}

... но действие отправки запускается до загрузки моего сценария, иначе оно переопределит мой метод переопределения.

Надеюсь, это имеет смысл.

Ответы [ 2 ]

3 голосов
/ 15 июля 2011

Ваш jQuery был близко.Вам просто нужно использовать # перед селектором на основе идентификатора, как в CSS.

$('#myform').submit(function() {
    alert('Gotcha!');
    return false;
});
0 голосов
/ 15 июля 2011

Вы переопределили функцию в правильном месте?Следующее работает для меня и останавливает отправку.

function redir() {
    document.myform.submit();
}

redir = function(){}

redir();

Демо

...