如果已经提交了部分内的表格,如何跳过手风琴部分

时间:2011-04-30 15:00:54

标签: jquery accordion jquery-ui-accordion multipartform-data

我正在使用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);
        }   
  });       

});

1 个答案:

答案 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);
}