カスタムフィールドバリデーターを使用して、テキストボックスの値を検証するクライアント側のコードを生成しました。値が無効な場合、私はカスタムバリデータにメッセージを表示したいと思います。バリデーターに値を割り当てることができますが、ページにロードするときに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>
これを強制的に表示するにはどうすればよいですか?
無効な値を送信しようとすると、メッセージが表示されます。 javascriptが有効な場合、クライアント側で発生します。 – Oded
GetHaulerメソッドが実行されていますか?デバッグのために関数内のいくつかの警告を設定し、何が起こっているかを調べてみてください。 – gbs