Проверка шага jQuery SmartWizard, предотвращение следующего шага ⇐ Jquery
Проверка шага jQuery SmartWizard, предотвращение следующего шага
В настоящее время я использую библиотеку SmartWizard (v5), которая состоит из трех этапов. Каждый шаг зависит от завершения предыдущего; например, первый шаг включает в себя регистрационную форму, за которой на следующем этапе следует проверка OTP (одноразового пароля). Я стремлюсь реализовать правильную проверку таким образом, чтобы, если мой вызов AJAX возвращает ошибку, пользователь не будет автоматически перенаправлен на следующий шаг. Мне удалось успешно реализовать эту функциональность. Однако другая проблема, с которой я сталкиваюсь, заключается в том, что если пользователь вручную добавляет фрагмент URL-адреса, например #step-2, второй шаг будет отображаться, даже если первый шаг не завершен. В таких случаях я хочу вместо этого обеспечить принудительное отображение предыдущего шага. Я проверил документацию и не нашел другого варианта, кроме использования событий onLeave и showStep
Вот код:
var ajaxInvoke = false; $('#smartwizard').on('showStep', function (e,anchorObject,stepNumber){ если(!step1Completed){ $('#smartwizard').smartWizard("goToStep", 0); } иначе если(!step2Completed){ $('#smartwizard').smartWizard("goToStep", 1); } }) $('#smartwizard').on("leaveStep", function (e,anchorObject,stepNumber) { if (stepNumber === 0 && ajaxInvoke === false) { ajaxInvoke = правда ... $.ajax({ параметры }}).then(function(response) { если (ответ.успех) { Step1Completed = Истина; $('#smartwizard').smartWizard("следующий"); ajaxInvoke = ложь; }, функция(){ ajaxInvoke = ложь; }) вернуть ложь; // та же логика для шага 2 Теперь мне интересно, как я могу запретить пользователю переходить к следующему шагу, если ajax возвращает ошибку, а также если пользователь добавляет #step-2 для перехода к предыдущему шагу?
В настоящее время я использую библиотеку SmartWizard (v5), которая состоит из трех этапов. Каждый шаг зависит от завершения предыдущего; например, первый шаг включает в себя регистрационную форму, за которой на следующем этапе следует проверка OTP (одноразового пароля). Я стремлюсь реализовать правильную проверку таким образом, чтобы, если мой вызов AJAX возвращает ошибку, пользователь не будет автоматически перенаправлен на следующий шаг. Мне удалось успешно реализовать эту функциональность. Однако другая проблема, с которой я сталкиваюсь, заключается в том, что если пользователь вручную добавляет фрагмент URL-адреса, например #step-2, второй шаг будет отображаться, даже если первый шаг не завершен. В таких случаях я хочу вместо этого обеспечить принудительное отображение предыдущего шага. Я проверил документацию и не нашел другого варианта, кроме использования событий onLeave и showStep
Вот код:
var ajaxInvoke = false; $('#smartwizard').on('showStep', function (e,anchorObject,stepNumber){ если(!step1Completed){ $('#smartwizard').smartWizard("goToStep", 0); } иначе если(!step2Completed){ $('#smartwizard').smartWizard("goToStep", 1); } }) $('#smartwizard').on("leaveStep", function (e,anchorObject,stepNumber) { if (stepNumber === 0 && ajaxInvoke === false) { ajaxInvoke = правда ... $.ajax({ параметры }}).then(function(response) { если (ответ.успех) { Step1Completed = Истина; $('#smartwizard').smartWizard("следующий"); ajaxInvoke = ложь; }, функция(){ ajaxInvoke = ложь; }) вернуть ложь; // та же логика для шага 2 Теперь мне интересно, как я могу запретить пользователю переходить к следующему шагу, если ajax возвращает ошибку, а также если пользователь добавляет #step-2 для перехода к предыдущему шагу?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение