2

複数のサーバーコントロールを備えた大きな.aspxページがあります。また、この.aspxページで参照されるJavaScriptファイルもあります。この既存の.jsファイル内にJavaScript関数が必要です。この関数は、サーバーで発生するポストバックの前に呼び出されます。

[注:JQueryでこれを行う方法(ASP.NETアプリケーションでjQueryを使用して送信イベントをキャプチャする方法?)について言及している別の投稿を見ましたが、それを使用するのではなく、既存のJavaScriptファイルを介して実行したいと思いますJQueryのような新しいテクノロジー]

[編集] OnSubmitハンドラーを使用するソリューションは、サーバーコントロールによってトリガーされるポストバックに対して呼び出されないため、機能しません。

4

1 に答える 1

3

次のようなものが必要です。

/* 
   usually there is only one form in asp.net, but if you know you can have 
   more than one, you can get main form with document.getElementById
*/
var form = document.getElementsByTagName("form")[0];     
if (form.addEventListener) {
    form.addEventListener('submit', functionThatShouldBeCalledBeforeSubmit, false); 
} else if (form.attachEvent)  {
    form.attachEvent('onsubmit', functionThatShouldBeCalledBeforeSubmit);
}

onsubmitフォームが送信されるたびにイベントが発生します。どんなに。

JSを使用したイベントのアタッチに関する詳細:https ://developer.mozilla.org/en-US/docs/DOM/element.addEventListener

于 2012-11-09T17:53:41.887 に答える