Подавление обработчика событий отправки панели обновления .net - PullRequest
1 голос
/ 14 февраля 2011

Я выполняю некоторую настраиваемую проверку js для моих форм, вызванную отправкой формы

    $("form").submit(function (e) {
        var validates = true;
        // validation code goes in here
        if (!validates) {
            e.preventDefault();
            e.stopImmediatePropagation();
            return false;
        }
    })

Ни одна из строк, которые я включил, чтобы остановить событие отправки, не препятствует отправке элемента управления .NET.Есть ли какой-нибудь способ (с помощью js или установки свойства в элементе управления updatepanel) остановить пост обратно?

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Я нашел надежный способ сделать это, используя класс Sys.WebForms.PageRequestManager:

Sys.WebForms.PageRequestManager.getInstance()
    .add_initializeRequest(function (sender, args) {
        if (!function_to_check_form_is_valid(sender, args))
            args.set_cancel(true);
        }
   });
0 голосов
/ 14 февраля 2011

Есть ли причина, по которой вы выполняете проверку на стороне клиента, а не на стороне сервера?Если бы это был я, я бы просто написал собственный валидатор asp.net, а затем проверил этот валидатор перед отправкой обновления.Панель обновления по-прежнему будет отправлять обратно, но пока вы проверяете по валидатору, ничего не будет создано.

0 голосов
/ 14 февраля 2011

Самый простой способ сделать это - зафиксировать клик клиента на объекте, отправляющем форму.

...