今日、これを機能させるために数時間を費やしました。この.formwizard("show","new_step")
方法を使用して手順をスキップしても、うまくいきませんでした。メソッドでステップ3への移行を防ぎ、フォームのステップ4にオーバーライドすることができなかったため.bind("step_shown",function(){...})
、非表示の入力「リンク」クラスアプローチを使用しました。無料または有料のアカウントで特定のラジオボタン(ステップ2)が選択されたときに非表示のフィールドを埋め込みました。これは、ステップ3を完全にスキップできることを意味します(無料アカウントの請求の詳細は必要ありません)。非表示の入力で「link」クラスを使用してジャンプする手順を特定しました。
DOMには、現在表示されているステップのdivにある次のフィールドがあります。
<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
です。そして、念のために言っておきますが、私はテストを行ったところ、任意の数のステップを飛び越えることが可能であり、戻るボタンを押すと正しい場所に正しく戻ることができます。