У меня есть страница, которая построена вокруг обертки с определенной логикой. Существует кнопка Сохранить в нижней части обернутой формы, которая выглядит следующим образом:Событие Prototype.js наблюдать за перехватом кликов и прекращением распространения
<form>
... my page goes here...
<input id="submitBtnSaveId" type="button" onclick="submitPage('save', 'auto', event)" value="Save">
</form>
Это не может измениться ...
Теперь я пишу некоторые JavaScript в страницу, которая загружается в " ... моя страница идет здесь ... ». Код загружается отлично и работает, как ожидалось. Он выполняет некоторую работу вокруг элементов формы, и я даже ввел некоторые проверки на странице. Здесь я застрял. Я пытаюсь «перехватить» onclick и останавливать страницу от вызова «submitPage()», если проверка не выполняется. Я использую prototype.js, поэтому я попробовал все варианты и комбинации, как это:
document.observe("dom:loaded", function() {
Element.observe('submitBtnSaveId', 'click', function (e) {
console.log('Noticed a submit taking place... please make it stop!');
//validateForm(e);
Event.stop(e);
e.stopPropagation();
e.cancelBubble = true;
console.log(e);
alert('Stop the default submit!');
return false;
}, false);
});
Ничто не остановит «submitPage()» от призыва! Наблюдатель фактически работает и запускает консольное сообщение и показывает предупреждение на секунду. Затем «submitPage()» запускается, и все идет пока. Я удалил onclick, прикрепленный к кнопке в Firebug, и моя проверка и предупреждение все работают по назначению, так что это заставляет меня думать, что распространение на самом деле не остановлено для onclick?
Что мне не хватает?
Спасибо за помощь! Метод writeAttribute() был тем, что запустило все остальное, чтобы встать на свои места. Я полностью пропустил это как вариант! –