Подтвердить что ты не робот

Проверка Jquery и панель обновления вместе

Я пытаюсь использовать jquery validation, но моя форма находится в панели обновления. Поэтому даже после применения проверки на отправке формы она проверяет и показывает требуемое сообщение в течение едва 2 секунд, а затем отправляет форму.
Каков обходной путь для этого?

Я тоже пробовал это.

<asp:UpdatePanel ID="AddUserPanel" runat="server"
             ChildrenAsTriggers="false"
             UpdateMode="Conditional">

Но это тоже не помогает.

4b9b3361

Ответ 1

Если вы используете менеджер script, вам нужен код l33t ниже:

  $(function () {
 //Code that runs before update panel is fired.

        //Listen for update panel
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
        //Re-initialize jquery after an auto post back.
        function EndRequestHandler(sender, args) {
            //Do work after update panel fires.
        } 
    });

Итак, в основном у вас есть повторяющийся код, код вне EndRequestHandler() и внутри него.

Ответ 2

Вам нужно вернуть false и остановить событие пузырьков в onsubmit, что-то вроде этого:

$("form").submit(function (e) {
  e.preventDefault();
  return(false);
});

Однако я ничего не знаю об ASP, поэтому я не знаю, поможет ли это в этом конкретном случае.

Возможно, вам нужно использовать .live или повторно подключить обработчик после загрузки содержимого на этой панели, поэтому события onsubmit привязаны к нему?

Ответ 3

Asp.net WebForms использует функцию __doPostback(), которая отправляет вашу форму.

Это то, что я сделал бы:

  • Проверить выполнение отправки, чтобы увидеть, работают ли вещи так, как ожидается, поэтому проверка выполняется сначала (что я уверен, что это происходит, потому что вы получаете эти сообщения) и проверяете код каждой отдельной части.

  • Если проверка не предотвращает выполнение события по умолчанию (bubbling) путем возврата false вызова preventDefault() или и того и другого, то его следует изменить, чтобы работать достаточно с Asp.net WebForms.

  • Если на фронте проверки все будет хорошо, вы должны изменить свою функцию __doPostback(). Это звучит хакерски да, но иногда такие вещи нужно делать. Скопируйте существующий код и добавьте дополнительную проверку. Нечего волноваться.

Также проверьте этот fooobar.com/questions/128419/....

Черт возьми. Просто выполните поиск Google по этому вопросу и включите только результаты преобразования stackoverflow: веб-сайт проверки валидации jQuery: stackoverflow.com

Ответ 4

Если я правильно помню, вы можете использовать обычную кнопку вместо кнопки asp:, которая не вызовет обратной передачи. Если это так, вы можете использовать JavaScript для обновления UpdatePanel.