ASP CustomValidator не обнаруживает текст, измененный с автозаполнением JQuery - PullRequest
1 голос
/ 03 октября 2011

Я написал веб-страницу, которая использует ASP.NET CustomValidator для проверки ввода текстового поля (на стороне клиента).В текстовом поле используется автозаполнение пользовательского интерфейса JQuery, и именно здесь я сталкиваюсь с проблемами.

Валидатор работает просто отлично.Но в случае, если проверка завершится неудачно и пользователь получит сообщение об ошибке, он вернется к текстовому полю и введет новое значение, выбрав его из выпадающего меню плагина автозаполнения.Теперь, когда выбрано новое значение и пользователь покидает поле ввода, код проверки не запускается снова.Я подозреваю, что это потому, что по какой-то причине не было обнаружено, что текст был изменен, когда значение пришло от помощника автозаполнения.Имеет ли это смысл?

Кто-нибудь знает, как я могу заставить поле для проверки через CustomValidator, когда пользователь удаляет фокус из поля?

Вот CustomValidator:

<asp:CustomValidator EnableClientScript="True" runat="server" ControlToValidate="tbInput"
                    ID="inputCustomValidator" ClientValidationFunction="validateFunction" ErrorMessage="Not valid"
                    Display="Dynamic" ValidationGroup="ValidationGrp1" />

Вызываемый javascript не интересен, поскольку он не вызывается.Это то, чего я хочу достичь.

Ответы [ 4 ]

2 голосов
/ 05 октября 2011

Я нашел способ сделать это. В javascript я добавил функцию blur () к элементу, который я хотел проверить, и заставил эту функцию вызвать Page_ClientValidate ('validationGroupName'). Функциональность, которая была для меня новой.

$('.elementToValidate').blur(function () {
Page_ClientValidate('ValidationGrp1');
});
0 голосов
/ 01 октября 2014

Я получил это, установив событие onBlur для моего текстового поля.

<asp:TextBox ID="TextBox1" runat="server" onBlur="Page_ClientValidate('ValidationGrp1');"></asp:TextBox>

(при условии, что группа ValidationGroup вашего CustomValidator 'ValidationGrp1')

0 голосов
/ 01 октября 2012

Вы также можете использовать обработчик select: autoselect для запуска проверки.

$(".someClass").autocomplete({
select: function(event, ui)
{
Page_ClientValidate(ui);
}
});
0 голосов
/ 03 октября 2011

Возможно, это не то, что вы хотите услышать, но я бы не стал смешивать jQuery и Javascript ASP.net, когда это возможно - они не очень хорошо играют.

В вашем случае я бы порекомендовалвыгрузка вашего ASP.net CustomValidator и переключение на jQuery's Validate plugin .Это будет гораздо приятнее с jQuery UI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...