ASP.NET LinkButton/ImageButton и JQuery Validate?
Мы представляем JQuery существующее приложение ASP.NET и используем плагин Validate для JQuery для проверки на стороне клиента (мы не хотим использовать asp.net).
Все хорошо работает с управлением asp: Button. Проверка валидации на стороне клиента инициируется до отправки страницы.
Однако при использовании элементов LinkButton и ImageButton страница отправляется без подтверждения формы.
Это связано с тем, что проверка работает с кнопками, которые отображаются как Input type="submit", в то время как ImageButton отображает как Тип ввода = "изображение" .
Кто-нибудь еще испытал это?
Большое спасибо за идеи и информацию о том, как их решить.
Обновление:
Большое спасибо, ваши ответы помогли выявить проблему.
Оказывается, что ошибка в плагине проверки для JQuery была ошибкой. Мы использовали патч, чтобы избежать проверки скрытых полей ввода, в которых используется parent(). Filter ( ": hidden" ). Это не работает должным образом в JQuery 1.3.2. Мы заменили его на .is( ": visible" ). Теперь asp.net ImageButton работает по умолчанию!
Update2:
LinkButton все еще не работает. Простым решением является добавление функции щелчка, которая возвращает false, если форма недействительна:
$("#<%= tb.ClientID %>").click(function() {
return $('form').valid();
})
Ответы
Ответ 1
Первое предложение может по-прежнему работать, потому что вы можете заставить postback запускаться с помощью Javascript после проверки.
javascript:
__doPostBack('<%= YourImageControl.UniqueID %>','');
Второй аргумент может использоваться для передачи аргументов.
Ответ 2
Не уверен, что это поможет, но дайте ему шанс...
http://docs.jquery.com/Plugins/Validation/validate#options
$("input[type=image]").click(function() {
$($(this).parents(form)).validate();
});
Возможно, вам нужно будет заменить "форму" чем-то более конкретным, но я постарался сделать ее максимально точной, не зная, как все выложено на вашей странице. Ответ, если это поможет!