2011-01-03 14 views
2

カスタムフィールドバリデーターを使用して、テキストボックスの値を検証するクライアント側のコードを生成しました。値が無効な場合、私はカスタムバリデータにメッセージを表示したいと思います。バリデーターに値を割り当てることができますが、ページにロードするときにvisibility = hiddenまたはdisplay = noneに設定されています。私は両方のプロパティをクライアント側とバリデーターに表示するように設定しようとしました。クライアントサイドコードでカスタム検証のエラーを設定して表示する

クライアント側:

if (data.d == null) { 
        sender.errormessage = $('#<%= txtHaulerNumber.ClientID %>').val() + " is not a valid Hauler Number."; 
        sender.innerHTML = $('#<%= txtHaulerNumber.ClientID %>').val() + " is not a valid Hauler Number."; 
        sender.text = $('#<%= txtHaulerNumber.ClientID %>').val() + " is not a valid Hauler Number."; 
        $('#<%= cfvHaulerNumber.ClientID %>').visible = true; 
        args.IsValid = false; 
        $('#<%= txtHaulerNumber.ClientID %>').focus(); 
       } 

ASPバリデータ

<asp:CustomValidator ID="cfvHaulerNumber" runat="server" ControlToValidate="txtHaulerNumber" 
      ErrorMessage="" onservervalidate="cfvHaulerNumber_ServerValidate" 
      ValidateEmptyText="true" ClientValidationFunction = "GetHauler" EnableClientScript = "true" 
      Visible = "true" Display = "Static"></asp:CustomValidator> 

UPDATE: 私はそれが私がテキストボックスに入力したテキストを再フォーマットするなどの方法が実行されていることを肯定しています。 Firebugを開いてHTMLを見ると、エラーメッセージがバリデーターに割り当てられていることがわかりますが、何かが非表示になっています。

<span style="color: Red; visibility: hidden;" id="ctl00_ContentPlaceHolder1_cfvHaulerNumber"></span> 

これを強制的に表示するにはどうすればよいですか?

+0

無効な値を送信しようとすると、メッセージが表示されます。 javascriptが有効な場合、クライアント側で発生します。 – Oded

+0

GetHaulerメソッドが実行されていますか?デバッグのために関数内のいくつかの警告を設定し、何が起こっているかを調べてみてください。 – gbs

答えて

0

私はいくつかのテストを実行しましたが、CustomValidatorと思われます.FirefoxとASP.NET 4.0では動作しません。それはIEで正常に動作します。 FFで.NET 2.0でうまく動作します。

私はいくつかの検索を行いましたが、2.0で解決された1.1のバリデーションで問題だったようです。 4.0で必要な設定がいくつかあります。

0

後期応答が、そののIsValidプロパティがに設定されている場合、 バリデータは隠されて行くでしょう。

JavaScriptを確認して調整することをおすすめします。

関連する問題