Первый способ, который я могу придумать, - это отменить привязку событий, а затем добавить все новые события:
Итак, если ваш элемент:
<input type="submit" value="Go!" id="mySubmit" />
Может быть, вы сначала отмените существующий обработчик?
$('mySubmit').stopObserving('click');
Тогда добавьте туда новую логику. Возможно, существующая логика инкапсулирована таким образом, чтобы ее можно было легко восстановить?
Event.observe('mySubmit', 'click', function(){
// new logic here
// old logic next
);
Мне было бы интересно узнать, есть ли способ записать существующие события в объект, который может быть присоединен заново.
Другой, более хитрый способ сделать это может быть:
- Скрыть существующую кнопку
- Добавить новую кнопку с уникальным идентификатором сразу после другой кнопки
- к этой кнопке прикреплена новая бизнес-логика
- эта кнопка запускает событие нажатия для скрытой теперь кнопки
Вы получаете новый функционал, старый функционал и отправляете форму. В теории.
UPDATE
Еще одна вещь, на которую следует обратить внимание, это то, что может наблюдаться также событие submit
- если к этому событию также прикреплен материал (скажем, для проверки), то с этим тоже нужно будет разобраться.