非常に定義されたロジックを使用してラッパーを中心に構築されたページがあります。ラップされたフォームの下部には、次のような[保存]ボタンがあります。
<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()」の呼び出しを止めるものはありません。監視は実際に機能し、コンソールメッセージをトリガーして、アラートを1秒間表示します。次に、「submitPage()」が起動し、すべてがさようならになります。Firebugのボタンにアタッチされているonclickを削除しましたが、検証とアラートはすべて意図したとおりに機能するため、onclickの伝播が実際に停止されていないと思いますか?
私は何が欠けていますか?