2

ASP.NetWebアプリケーションに取り組んでいます。
ASPXページの1つに、カスタムTextBoxコントロールが含まれています。

3つの検証コントロールがTextBoxに適用されます。

  • 1 RequiredFieldValidator
    • ErrorMessage = "*"
    • Display="ダイナミック"
    • ValidationGroup = "IdentityRequired"
  • 2 CompareValidator:
    • ErrorMessage = "*"
    • ValidationGroup = "Identity"

フォームが送信されると、カスタムJS関数が実行されます。
カスタムJS関数には、次の2つのステートメントが含まれています。

var b_RegExp = window.Page_ClientValidate('Identity');
var b_Required = window.Page_ClientValidate('IdentityRequired');

b_Requiredがfalseの場合、RequiredFieldValidator => OK!が原因でスターが表示されます。
b_RegExpがfalseの場合、星は表示されません=> KO!
誰かが私に何が悪いのか説明してもらえますか?

4

1 に答える 1

1

window.Page_ClientValidate への最後の呼び出しによって、表示するエラー メッセージが決定されるようです。
window.Page_ClientValidate への最後の呼び出しが IdentityRequired グループでエラーを検出しなかったため、Identity グループでエラーが検出された場合でも、エラー メッセージ (スター) は表示されません。

そこで、2 つの JS ステートメントを次のように変更しました。

var b_Required = window.Page_ClientValidate('IdentityRequired');
var b_RegExp = false;
if (b_Required)
    b_RegExp = window.Page_ClientValidate('Identity');

そして、2 つの CompareValidator コントロールのマークアップに Display="Dynamic" を追加しました。

于 2013-03-06T19:27:38.260 に答える