Bootstrap Formwizard - запретить прокрутку к следующему шагу, если каждая форма страницы, отправляющая ответ ajax, получает ошибку

Я использую мастер форм начальной загрузки Twitter для отправки данных на каждой странице с проверкой. Теперь я хочу предотвратить, перейдите к следующему шагу, если ответ ajax получит ошибку при отправке данных. Ниже мой код,

'onNext': function(tab,navigation,index){
    //scrollTo('#wizard',-100);
    if(index == 1){
        var $valid = $('#register_form').valid();
        if(!$valid){
            $validator.focusInvalid();
            return false;
        }
        else
        {
            var options = $('form[name=register_form]').find('input, textarea, select').filter('.fw1').serialize();
            var data = options + '&step=1';
            $.ajax({
                type: 'POST',
                url: 'employeeEntryProcess.php',
                data: data,
                success: function(data){
                    this.show(2);
                },
                error: function(){
                    return false;
                }
            });
        }
    }
},

Спасибо,


person Venkatesh    schedule 25.04.2016    source источник


Ответы (2)


Работает после изменений. Спасибо всем за помощь.

  'onNext': function(tab,navigation,index){
        if(index == 1){
          var $valid = $('#register_form').valid();
          if(!$valid){
            $validator.focusInvalid();
            return false;
          }
          else
          {
            var options = $('form[name=register_form]').find('input, textarea, select').filter('.fw1').serialize();
            var data = options + '&step=1';
            $.ajax({
              type: 'POST',
              url: 'employeeEntryProcess.php',
              data: data,
              success: function(response){
                 $('#wizard').bootstrapWizard('show',1);
              },
              error: function(){
                 alert('Error');
             }
          });
       }
   }
   return false;
},  
person Venkatesh    schedule 25.04.2016

Единственный способ сделать это - всегда return false, чтобы он не прокручивался к следующему шагу автоматически, а затем вручную прокручивался до следующего шага в функции success запроса AJAX (чтобы он продолжался только в случае успеха) . Вы можете захотеть поместить анимацию на время запроса AJAX, иначе это будет выглядеть так, как будто ничего не происходит.

person wilsonzlin    schedule 25.04.2016
comment
@VenkateshAnantharaj Не помещайте return false в функцию ошибки, поместите его в обработчик события onNext. - person wilsonzlin; 25.04.2016
comment
Я пытался, но это мешает прокручивать дальше, даже если ответ ajax получает успех. Не могли бы вы исправить мой код, если у меня есть какая-либо ошибка в этом. - person Venkatesh; 25.04.2016
comment
@VenkateshAnantharaj Я сделал для вас jsFiddle на основе вашего кода: jsfiddle.net/c9q6ga5L - person wilsonzlin; 25.04.2016
comment
@VenkateshAnantharaj Извините, неправильная ссылка, вот обновленная: jsfiddle.net/c9q6ga5L/4 - person wilsonzlin; 25.04.2016