我有一個頁面是圍繞一個包含一些非常定義的邏輯的包裝。有關於包裝的形式底部的保存按鈕,看起來像這樣: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()」開始,所有事情都會再見。我已經刪除了Firebug中按鈕的onclick,並且我的驗證和警報都按照預期工作,所以它讓我認爲onclick並沒有真正停止傳播?
我錯過了什麼?
感謝您的幫助! writeAttribute()方法觸發了其他所有事情。我甚至完全錯過了這個選擇! – 2013-04-02 21:44:43