Я использую виджет для создания мастера (шаги).
Существует событие под названием showStep
, в котором я делаю публикацию формы, используя ajax для каждого шага. Проблема в том, что я получаю идентификатор формы примерно так: var form_data = $("#step_"+ stepNumber +"_form").serialize();
stepNumber
содержит текущий номер шага, весь этот код находится внутри события showStep
, которое срабатывает только после перехода на следующий шаг, а не при инициализации виджета. .
Это означает, что первая форма никогда не публикуется, только вторая и так далее.
Это весь мой код:
$("#smartwizard").on("showStep", function(e, anchorObject, stepNumber, stepDirection, stepPosition) {
var form_data = $("#step_"+ stepNumber +"_form").serialize();
console.log($("#step_"+ stepNumber +"_form input:radio:checked"));
var formaataantal = $("#aantalenformaat").serialize();
$.ajax({
type:'post',
url:"catalog/calcdiv.php",
data:({form_data: form_data, formaataantal: formaataantal}),
success:function(data){
// indicate the ajax has been done, release the next step
$("#smartwizard").smartWizard("next");
}
});
})
Но когда этот код запускается, виджет уже инициализируется этим кодом:
$('#smartwizard').smartWizard({
lang: {
next: 'Volgende',
previous: 'Vorige'
},
useURLhash: false,
showStepURLhash: false
});
Мастер запускается спервый шаг открыт, поэтому событие showStep
всегда пропускает первый шаг.
Как это исправить?