14

JQueryを既存のASP.NETアプリケーションに導入し、JQueryのValidateプラグインを使用してクライアント側の検証を行います(asp.netバリデーターは使用しません)。

すべてがasp:Buttonコントロールでうまく機能します。ページが送信される前に、クライアント側の検証がトリガーされます。

ただし、LinkBut​​tonおよびImageButtonコントロールを使用する最初にフォームを検証せずにページが送信されます。

これは、validateがInput type = "submit"としてレンダリングされるボタンで機能し、ImageButtonがInput type="image"としてレンダリングされるためです。

他の誰かがこれを経験しましたか?

解決する方法のアイデアと情報をどうもありがとう。

アップデート:

どうもありがとう、あなたの答えは問題を特定するのに役立ちました。JQueryの検証プラグインにバグがあったことが判明しました。親()。filter( ":hidden")を使用する非表示の入力フィールドの検証を回避するためにパッチを使用しました。これは、 JQuery1.3.2では正しく機能しません。.is( ":visible")に置き換えました。これで、asp.netImageButtonがデフォルトで機能します。

Update2:

LinkBut​​tonはまだ機能しませんでした。簡単な解決策は、フォームが無効な場合にfalseを返すクリック関数を追加することです。

$("#<%= tb.ClientID %>").click(function() {
            return $('form').valid();
        })
4

2 に答える 2

3

最初の提案は、検証後に Javascript を使用してポストバックを起動できるため、引き続き機能する可能性があります。

JavaScriptは次のとおりです。

__doPostBack('<%= YourImageControl.UniqueID %>','');

2 番目の空のパラメーターを使用して、引数を渡すことができます。

于 2009-03-17T12:48:33.743 に答える
0

これが役立つかどうかはわかりませんが、試してみてください...

http://docs.jquery.com/Plugins/Validation/validate#options

$("input[type=image]").click(function() {
   $($(this).parents(form)).validate();
});

「フォーム」をより具体的なものに置き換える必要があるかもしれませんが、ページ上ですべてがどのようにレイアウトされているかを知らずに、できるだけ正確になるようにしました. これが役に立ったら返信してください!

于 2009-03-16T19:27:58.003 に答える