подмена событий javascript ...

walker_ag

Новичок
подмена событий javascript ...

Господа, может быть кто-нибудь сталкивался с подменой событий javascript?
Что имею ввиду: ...
Если локально - то просто по вызову js-функции, то заменить у некоторой формы onSubmit='return checkForm();' на 'myNewFunc(); return Form();'

Это делается при помощи конструктора new Function() ...
myForm.onSubmit = new Function("myNewFunction(); return checkForm();");

Но вот это код совершенно не хочет работать в mozilla ... т.е. он функцию то подменяет, но не дает ей вернуть true и false ... т.е. теряется клиентская проверка формы (проверка выполняется, даже выдаются сообщения о не правильно заполненных полях, но return не срабатывает).

Глобальный смысл этой вещи - в произвольный php-скрипт - внедрять дополнительные параметры проверки или нечто такое, без учитывания собственно параметров формы.

Если кто знает об этом что-нибудь - напишите пожалуйста.
 

Frol

Новичок
PHP:
myForm.onsubmit
-- заметь разницу.

более наглядно будет использовать анонимные функции:
PHP:
myForm.onsubmit = function () {
  myNewFunction();
  return checkForm();
}
 

walker_ag

Новичок
Да это все мелочи (я про синтаксис) ...
Проблема в том, что это все хорошо работает под IE, но совершенно не хочет работать под mozilla, т.е. работает но не так... (описано выше)
 

slach

Новичок
по моему ерунду ты какую то городишь =)))
тебе что надо? перехватить событие ?? onsubmit ???

ты не умеешь подключать хандлеры кроссбраузерно ??
PHP:
/**
* obj - форма, div и т.п. что имеет событие
* evType - идентификатор события без приставки on, onload == load
* fn - ссылка на ф-цию хандлер события
* capture - false если подключать "в конец очереди, хандлеров", true если включать EventCapture (хандлер будет вызываться самым первым)
*/

function addEvent(obj, evType, fn, capture){
 if (obj.addEventListener){
    obj.addEventListener(evType, fn, capture); //status=true если включен eventCapturing
    return true;
 } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
 } else {
    return false;
 }
}
 

Frol

Новичок
Да это все мелочи (я про синтаксис) ...
где?
Проблема в том, что это все хорошо работает под IE, но совершенно не хочет работать под mozilla, т.е. работает но не так... (описано выше)
может определишься?

мозилла, в отличие от ИЕ, прекрасно сообщает ошибки.
 
Сверху