我正在使用jQuery UI Accordion来包含几个单独的表单。当用户点击“继续”时,将提交该部分中的表单,并打开下一部分。用户可以单击“编辑”按钮打开以前提交的部分并编辑该部分。完成后,用户单击“继续”,表单将重新提交,下一部分将打开。我想将其设置为打开下一个未提交的部分,而不仅仅是下一部分。有什么建议吗?
以下是我目前用于打开下一部分的代码部分:
$("#applicant-form").validate({
submitHandler: function(form) {
$(form).ajaxSubmit({
...
complete: function(e) {
var acc = $("#accordion"),
index = acc.accordion('option','active'),
total = acc.children('div').length,
nxt = index + 1;
acc.accordion('activate', nxt);
}
});
});
答案 0 :(得分:0)
您可以为每个包含div的表单添加一个state属性,其值为两个值之一:0表示未提交,1表示提交。
然后将您的代码更新为:
complete: function(e){
var acc = $('#accordion'),
index = acc.accordion('option','active'),
total = acc.children('div').length;
// Updating state of just submitted form
acc.children('div:eq('+index+')').attr('state',1);
// Finding next unsubmitted form
acc.children('div').each(function(i){
if($(this).attr('state') == 0) {
nxt = i;
return false;
}
})
acc.accordion('activate',nxt);
}