JQueryを既存のASP.NETアプリケーションに導入し、JQueryのValidateプラグインを使用してクライアント側の検証を行います(asp.netバリデーターは使用しません)。
すべてがasp:Buttonコントロールでうまく機能します。ページが送信される前に、クライアント側の検証がトリガーされます。
ただし、LinkButtonおよびImageButtonコントロールを使用すると、最初にフォームを検証せずにページが送信されます。
これは、validateがInput type = "submit"としてレンダリングされるボタンで機能し、ImageButtonがInput type="image"としてレンダリングされるためです。
他の誰かがこれを経験しましたか?
解決する方法のアイデアと情報をどうもありがとう。
アップデート:
どうもありがとう、あなたの答えは問題を特定するのに役立ちました。JQueryの検証プラグインにバグがあったことが判明しました。親()。filter( ":hidden")を使用する非表示の入力フィールドの検証を回避するためにパッチを使用しました。これは、 JQuery1.3.2では正しく機能しません。.is( ":visible")に置き換えました。これで、asp.netImageButtonがデフォルトで機能します。
Update2:
LinkButtonはまだ機能しませんでした。簡単な解決策は、フォームが無効な場合にfalseを返すクリック関数を追加することです。
$("#<%= tb.ClientID %>").click(function() {
return $('form').valid();
})