0

ASP.NET Web フォーム アプリケーションがあります。

私はFormさまざまなを持っていますが、現在、同じ に属するそれらにリンクされているものTextBoxがいくつかあります。asp:RequiredFieldValidatorValidationGroup

TextBoxここで、関連するエラー メッセージを含むいくつかの追加の検証に適用する必要があります。具体的には、 内のテキストTextBoxが aかどうかを確認する必要がありましたGuid。さらに、このチェックはオンザフライで実行する必要があります。つまり、ユーザーがカーソルをTextBox検証から移動するとすぐに、送信を押す必要なく実行する必要があります。

  1. IsGuid(string guid)Javascriptから関数を呼び出すにはどうすればよいですか?

  2. TextBox.Text検証として 2 つの異なるエラー メッセージを添付するにはどうすればよいですか (たとえば、文字数が許可されておらず、長さが N 未満の場合にメッセージを表示したい)

  3. jQueryまたはASP.NET バリデーターを使用してこの検証を実装する方が簡単ですか?

他の誰かがその実装について他のアイデアを持っている場合は、遠慮なく提案してください。ありがとう!

4

2 に答える 2

1

ReqularExpressionValidatorコントロールを使用できます。

ここで正規表現

^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$
于 2012-04-25T13:18:35.313 に答える
0

必要な数の Validators を同じコントロール (この場合は TextBox) に適用できます。

このシナリオでは、ニーズに対応するために開発した任意の関数を使用して検証を実行できるため、カスタム バリデーターが適しています。この簡単なチュートリアルをご覧ください。

更新 1 : サーバー側の検証

これは、CustomValidator の宣言でサーバー側関数を呼び出す方法です。

<asp:CustomValidator runat="server" id="custPrimeCheck"
    ControlToValidate="txtPrimeNumber"
    OnServerValidate="PrimeNumberCheck"
    ErrorMessage="Invalid Prime Number" />

「PrimeNumberCheck」VB 関数の例:

Sub PrimeNumberCheck(sender as Object, args as ServerValidateEventArgs)
Dim iPrime as Integer = Cint(args.Value), iLoop as Integer, _
    iSqrt as Integer = CInt(Math.Sqrt(iPrime))

For iLoop = 2 to iSqrt
  If iPrime mod iLoop = 0 then
    args.IsValid = False
    Exit Sub
  End If
Next

args.IsValid = True
End Sub

更新 2 : クライアント側の検証

これは、CustomValidator の宣言でサーバー側関数を呼び出す方法です。

<asp:CustomValidator runat="server" id="custPrimeCheck"
    ControlToValidate="txtPrimeNumber"
    ClientValidationFunction="CheckPrime"
    ErrorMessage="Invalid Prime Number" />

「CheckPrime」JavaScript 関数の例:

function CheckPrime(sender, args)
{
    var iPrime = parseInt(args.Value);
    var iSqrt = parseInt(Math.sqrt(iPrime));

    for (var iLoop=2; iLoop<=iSqrt; iLoop++)
      if (iPrime % iLoop == 0) 
      {
          args.IsValid = false;
         return;
      }

    args.IsValid = true;
}

これを知らせてくれた@AdrianIftodeに感謝します。

于 2012-04-25T13:21:31.657 に答える