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();
});

Возможно, вам придется заменить "форму" на что-то более конкретное, но я постарался сделать ее максимально точной, не зная, как все изложено на вашей странице. Ответьте, если это поможет!

Другие вопросы по тегам