ASP.NET Custom Validator Validação do lado do cliente e do lado do servidor não acionada
Isso nunca aconteceu comigo antes, mas, por algum motivo, os eventos de validação do cliente e do servidor não estão sendo acionados:
<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>
Evento de validação do lado do servidor:
protected void TextBoxDTownCity_Validate(object source, ServerValidateEventArgs args)
{
args.IsValid = false;
}
Evento de validação do lado do cliente:
function TextBoxDCountyClient(sender, args) {
args.IsValid = false;
alert("test");
}
Pensei que pelo menos a validação do lado do servidor seria acionada, mas não. isso nunca aconteceu comigo antes. Isso realmente me deixou perplex
Eu olhei a saída e o ASP.NET está reconhecendo a função do lado do cliente:
Saída JavaScript do ASP.NET:
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";
alidador personalizado renderizado:
<span id="ctl00_ctl00_content_content_CustomValidator2" style="color:Red;display:none;">Delivery Town or City required</span>
lguém pode esclarecer por que a validação do cliente e do servidor não seria acionad
Edit: Typo eu colei na função errada, problema ainda o mesmo
Apenas outra atualização para o último comentário: onde pelo TextBox não pode estar vazio. Eu testei isso e não é verdade. Em uma página em branco, o CustomValidator acionou minha função de validação do lado do cliente sem um valor:
<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" />