проверка на стороне клиента customvalidator

У меня есть собственный валидатор, и я хочу, чтобы он проверял клиентскую сторону, а не серверную. Вот моя функция:

function checkCampDockTemplate(source, args)
    {
        var campDockTemplate = document.getElementById('<%= drpCampDockTemplate.ClientID %>');

        if (campDockTemplate.selectedIndex == 0)
        {
            args.IsValid = false;
        }
        else
        {
            args.IsValid = true;
        }
    }



<asp:CustomValidator ID="campaignDocketTemplateCustomValidator" runat="server" ErrorMessage="Please select a Campaign Docket Template"
            ControlToValidate="drpCampDockTemplate" OnServerValidate="campaignDocketTemplateCustomValidator_ServerValidate"
            ClientValidationFunction="javascript:checkCampDockTemplate()"></asp:CustomValidator>

Может ли кто-нибудь помочь мне в этом. Заранее спасибо.


person johnnie    schedule 20.06.2011    source источник


Ответы (1)


У вас есть формат функции в основном правильный, но вам нужно ссылаться на клиентскую функцию по имени только в атрибуте ClientValidationFunction, например

<asp:CustomValidator ID="campaignDocketTemplateCustomValidator" 
runat="server" 
ErrorMessage="Please select a Campaign Docket Template"
ControlToValidate="drpCampDockTemplate"     
OnServerValidate="campaignDocketTemplateCustomValidator_ServerValidate"
ClientValidationFunction="checkCampDockTemplate"/>

Если вы также хотите полностью удалить проверку на стороне сервера, вы можете удалить атрибут OnServerValidate из CustomValidator.

Вообще говоря, обычно разумно проверять ваш ввод на сервере, а также на стороне клиента, на случай, если у людей отключен javascript!

person RYFN    schedule 15.12.2011