JavaScriptでASPXページのフォームが有効かどうかを判断する最良の方法は何ですか?ページがJavaScript - ASP.NETで有効かどうかを確認
JavaScript window.showModalDialog()
を使用して開かれ、サーバー側の 'Page.IsValid'プロパティが動作しないことを確認しているユーザーコントロールの検証を確認しようとしています。私は、ページ検証のためのASP.NET検証コントロールを使用しています。
JavaScriptでASPXページのフォームが有効かどうかを判断する最良の方法は何ですか?ページがJavaScript - ASP.NETで有効かどうかを確認
JavaScript window.showModalDialog()
を使用して開かれ、サーバー側の 'Page.IsValid'プロパティが動作しないことを確認しているユーザーコントロールの検証を確認しようとしています。私は、ページ検証のためのASP.NET検証コントロールを使用しています。
複数のASP.NET検証コントロールを使用しているページがある場合は、次のようなコードを使用してページの検証を行います。入力送信で呼び出しを行います。うまくいけば、このコードサンプルはあなたを始められます!あなたは(これは、.NETバリデータによって公開される変数です)あなたがPage_IsValid
をチェックする必要がありますPage.IsValid
をチェックされている
<input type="submit" value="Submit" onclick"ValidatePage();" />
<script type="text/javascript">
function ValidatePage() {
if (typeof (Page_ClientValidate) == 'function') {
Page_ClientValidate();
}
if (Page_IsValid) {
// do something
alert('Page is valid!');
}
else {
// do something else
alert('Page is not valid!');
}
}
</script>
jQueryとValidationプラグインを使用して、クライアント側の検証を実行できます。これは、htmlタグとasp.netサーバーコントロールの両方で動作します。 Phil Haack has a good sample projectをご覧ください。
このSO questionは、このアプローチについても深く検討しています。
ASP.NETの検証コントロールを使用すると、JavaScriptで使用できるクライアント側のAPIを公開:http://msdn.microsoft.com/en-us/library/aa479045.aspx
あなたは検証コントロールのいずれかが無効であるかどうかを確認するためにPage_IsValidオブジェクトをチェックすることができるはずです。
:)
ページ内の各asp.net
検証コントロールのための
ValidationGroup
プロパティを設定し
サーバー側のPage.IsValidプロパティが動作していないことを確認していたことを忘れていました。 –
$("input[id$=Button2]").click(function() {
var validated = Page_ClientValidate('repo');
if (validated) {
// JavaScript code.
}
});
ページ内のValidationGroup
に同じ名前を付ける必要があります。例えば
:
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required" ValidationGroup="Validate"></asp:RequiredFieldValidator>
<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="RangeValidator" ValidationGroup="Validate"></asp:RangeValidator>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" ValidationGroup="Validate"></asp:CustomValidator>
その後例えばPage_ClientValidate("ValidationGroup")
のようなあなたのjavascriptの呼び出しで:
function ValidatePage(){
if(Page_ClientValidate("Validate")){ //validate using above validation controls group
//validation return true section
}
else{
//validation return false section
}
}
あなたが答えるプラス、以下の記事を読んます。http://www.velocityreviews .com/forums/t292061-related-pageclientvalidate-function.html私の問題解決に役立ちました。 –
ページに複数の検証グループがあり、単一のグループが有効かどうかを確認するだけで、上記のコードを変更するにはどうすればよいですか? –
更新 - 私は 'Page_ClientValidate()'呼び出しを削除して動作しました: –