Я потратил несколько часов, пытаясь заставить это работать сегодня. Использование метода .formwizard("show","new_step")
для пропуска шагов мне не помогло. Мне не удалось предотвратить переход к шагу 3 и переопределить шаг 4 моей формы в методе .bind("step_shown",function(){...})
, поэтому я использовал подход класса скрытых входных данных «ссылка». Я встроил скрытое поле, когда для бесплатного или платного аккаунта была выбрана определенная радиокнопка (на шаге 2), что означало, что шаг 3 можно было пропустить полностью (для бесплатной учетной записи не требуются платежные реквизиты). Я определил шаг, к которому нужно перейти, используя класс «link» на скрытом вводе.
DOM имеет следующее поле , которое находится в делении текущего видимого шага :
<input type="hidden" id="jump_to_fourth_step" value="fourthStep">
JavaScript имеет следующее:
$('input[name="account_type"]').click(function() {
//add "link" class to jump to last step and hide billing fields in summary
if($(this).attr("is_free")==true) {
$("#jump_to_fourth_step").addClass("link");
$(".billing_info").hide();
}
//remove class "link" from input and show billing fields in summary
else {
$('#jump_to_fourth_step').removeClass("link");
$(".billing_info").show();
}
});
Обратите внимание, что этот код запускается только на шаге 2, поскольку переключатель доступен только тогда. Шаг 3 успешно пропускается при нажатии «Далее» с выбранной бесплатной учетной записью, и если кнопка «Назад» используется на шаге 4, пользователь возвращается к шагу 2. И если пользователь решает, что хочет получить платную учетную запись, и возвращается к шагу 2, чтобы пометить как таковой, скрытый ввод удаляется, еще раз вызывая шаг 3, который будет показан далее (и информация о выставлении счета будет отображаться на сводной странице).
Это плохо документировано, но плагин будет переходить на любой шаг в атрибуте «значение» активного входа на текущем шаге после нажатия кнопки «Далее». Как видно выше, значение равно fourthStep
. И, если быть точным, я только что проверил и перепрыгнул через любое количество шагов, и кнопка «Назад» правильно вернет вас в нужное место.