Динамическое сообщение об ошибке для клиентской части пользовательского валидатора

Я использую собственный валидатор для вызова функции javascript для проверки. Моя проблема в том, что мне нужно иметь возможность динамически изменять сообщение об ошибке. Вот код:

            <asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="fcnValid1"
                ErrorMessage=""  Display="None" ValidateEmptyText="True">
            </asp:CustomValidator>

<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode="List" ShowMessageBox="True" ShowSummary="False" />

    function fcnValid(source, args) {
        var Status = document.getElementById("<%=ddlStatus.ClientID%>").value

        if (Status == "In Underwriting") {
            if (document.getElementById("<%=txtRequestor.ClientID%>").value == "") {
                //sender.errormessage = "Test1"
                //sender.innerHTML = "Test2";
                document.getElementById("<%=txtRequestor.ClientID%>").focus();
                args.IsValid = false;
            }
        }
    }

person Mike    schedule 22.03.2011    source источник


Ответы (2)


В вашем проверяющем javascript вы можете изменить сообщение, обратившись к нему через source:

source.errormessage = "custom message here";

Нашел этот вопрос на SO, который также должен дать вам дополнительную информацию:

Как я могу переписать сообщение об ошибке для элемента управления CustomValidator на клиенте?

person Kelsey    schedule 22.03.2011
comment
у меня не работает, source.errormessage = "custom message here"; работает нормально - person Mahmoud Farahat; 08.01.2013
comment
@Mahmoud исправил публикацию. Обычно, если ответ уже есть в комментарии, вы можете внести изменения в ответ (особенно если это принятый ответ), чтобы улучшить его. - person Kelsey; 08.01.2013
comment
у меня не сработало при использовании ie9, но сработало любое из следующих действий: source.innerHTML = здесь пользовательское сообщение; или $(источник).html(собственное сообщение здесь); - person doiley; 25.01.2013
comment
@doiley Спасибо. У меня это работало как в ie, так и в chrome - person Bat_Programmer; 06.09.2018

хорошо, source.errormessage некоторое время работало некорректно

я предлагаю использовать source.innerText="сообщение об ошибке";

person Jay Magwadiya    schedule 22.08.2014
comment
Я хотел бы знать, почему innerText работает вместо errormessage. Это связано с версией .net? - person umutesen; 01.08.2017