ページにがASP:Button
あります。次のように HTML としてレンダリングされます。
<input type="submit" name="myButton" value="Do something"
onclick="javascript:WebForm_DoPostBackWithOptions(
new WebForm_PostBackOptions('myButton', '', true, '', '', false, false))"
id="myButton" />
ここで、jQuery イベント ハンドラーを介して、このボタンの既定の動作 (フォームの送信) を防止しようとしています。
$('#myButton').click(function () {
// do some client-side stuff
if (someCondition) {
// don't postback!
return false;
}
});
ここでの問題は、ASP が入力に固執するインライン クリック ハンドラーが、毎回 jQuery イベント ハンドラーの前に実行されているように見えることです。
ここでの最も簡単な解決策は、のinput type="button"
代わりにプレーンを使用することですASP:Button
。残念ながら、これはこのシナリオで必要な他の多くのことを行うため、これは可能ではありません。ASP:Button
フォームの送信が行われないようにする最善の方法は何ですか? 文字列操作を使用して要素の属性の前にハンドラーを追加することを考えましたonclick
が、これは本当に汚いようです。OnClientClick
また、ハンドラー関数を公開する必要があるため、の使用も避けたいと思います。より良い方法はありますか?