customvalidator проверка на стороне клиента - PullRequest
0 голосов
/ 20 июня 2011

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

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>

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

1 Ответ

2 голосов
/ 15 декабря 2011

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

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

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

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

...