これは以前に発生したことはありませんが、何らかの理由でクライアント側とサーバー側の両方の検証イベントがトリガーされていません。
<asp:TextBox ID="TextBoxDTownCity" runat="server" CssClass="contactfield" />
<asp:CustomValidator ID="CustomValidator2" runat="server" EnableClientScript="true"
ErrorMessage="Delivery Town or City required"
ClientValidationFunction="TextBoxDTownCityClient"
ControlToValidate="TextBoxDTownCity"
OnServerValidate="TextBoxDTownCity_Validate" Display="Dynamic" >
</asp:CustomValidator>
サーバー側の検証イベント:
protected void TextBoxDTownCity_Validate(object source, ServerValidateEventArgs args)
{
args.IsValid = false;
}
クライアント側の検証イベント:
function TextBoxDCountyClient(sender, args) {
args.IsValid = false;
alert("test");
}
少なくともサーバー側の検証が起動すると思いましたが、違います。これは私にこれまでに起こったことはありません。これは本当に私を困惑させました。
出力を確認したところ、ASP.NET はクライアント側の機能を認識しています。
ASP.NET JavaScript 出力:
var ctl00_ctl00_content_content_CustomValidator2 = document.all ? document.all["ctl00_ctl00_content_content_CustomValidator2"] : document.getElementById("ctl00_ctl00_content_content_CustomValidator2");
ctl00_ctl00_content_content_CustomValidator2.controltovalidate = "ctl00_ctl00_content_content_TextBoxDTownCity";
ctl00_ctl00_content_content_CustomValidator2.errormessage = "Delivery Town or City required";
ctl00_ctl00_content_content_CustomValidator2.display = "Dynamic";
ctl00_ctl00_content_content_CustomValidator2.evaluationfunction = "CustomValidatorEvaluateIsValid";
ctl00_ctl00_content_content_CustomValidator2.clientvalidationfunction = "TextBoxDTownCityClient";
レンダリングされたカスタム バリデータ:
<span id="ctl00_ctl00_content_content_CustomValidator2" style="color:Red;display:none;">Delivery Town or City required</span>
クライアント側とサーバー側の両方の検証が起動しない理由について、誰かが光を当てることができますか?
編集:間違った関数に貼り付けたタイプミス、問題はまだ同じ
最後のコメントへのもう 1 つの更新: TextBox を空にすることはできません。私はこれをテストしましたが、そうではありません。空白のページで、CustomValidator はクライアント側の検証関数を値なしで正常に起動しました。
<asp:TextBox ID="TextBox1" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server"
ErrorMessage="CustomValidator" ClientValidationFunction="TextBoxDAddress1Client"></asp:CustomValidator>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />