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