私が開発しているアプリケーションでは、ASP.NET Webフォームによって提供される検証コントロールと、使用しているフォームの特定の部分JavaScript。ASP.NET WebForms - JavaScriptの検証と検証コントロールを同時に実行する
[Submit]ボタンをクリックすると、まずASP.NETの検証が行われ、次にJavaScriptで行われたカスタム検証が行われます。その結果、フォームが不完全で送信されると、ASP.NET検証エラーのみが表示され、これらのエラーが修正されてフォームが送信されると、検証エラーが表示されます。
私が望むのは、ユーザーが[送信]ボタンをクリックすると、ASP.NET検証とJavaScript検証が同時に行われるため、ユーザーはすべてのエラーを一度に見ることができるということです。
<form id="StudentLSFApplication" runat="server" onsubmit="return validateForm()">
<!--other html code-->
<asp:Button ID="SaveLSFApplication" runat="server" Text="Save Application" OnClick="saveApplication"
ValidationGroup="AllValidation" />
</form>
<script>
function validateForm() {
//my validation
}
</script>
あなたは私のサンプルコードから見ることができるように、私はvalidateForm()
がonsubmit
イベントに呼び出されるJavaScript関数を持っている、とButton
制御がAllValidation
検証グループの一部です。現時点では、フォーム提出時にAllValidation
が最初に発生し、それが問題なければvalidateForm()
が発生します。
マイクロソフトが提供する他のバリデータを使用することをお勧めします。また、より複雑な場合は、検証/制御の種類ごとに 'CustomValidator 'を使用することをお勧めします。 ASP.NETバリデータはJavaScript **とC#(コードビハインド)**で検証されるため、優れています。 JavaScriptはバイパスすることができるので、 'CustomValidator'のイベントの後ろにコードを追加して、JavaScriptだけでなくC#でもバリデーションをプログラムする必要があります。 'CustomValidator'は1つのコントロールだけを指しますが、他のバリデータと同じ機能を共有できます。 'ControlToValidate'を設定する必要があります。 – modiX
上記の例は、1つの関数で完全な検証ではなく、フォーム内の単一のコントロールに対するものです。それをもっと明確にするために答えを少し編集しました。しかし、 'CheckBox1がチェックされている場合はTextBox1にデータが含まれている必要があります'など、複数のコントロールに対してより複雑なクライアント側の検証を行いたい場合は、CustomValidatorが起動するようにControlToValidateを省略することができます。そして、modiXが示唆しているように、常にコード内で検証を行います。 – VDWWD
これはうまくいきました、ありがとう! – RoyalSwish