Как пропустить аккордеонный раздел, если форма в разделе уже была отправлена - PullRequest
0 голосов
/ 30 апреля 2011

Я использую 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 голосов
/ 30 апреля 2011

Вы можете добавить атрибут состояния к каждой форме, содержащей div, значение которого будет одним из двух значений: 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);
}
...