0

This is html form

    <div class="tab-pane" id="step1">
    <form method="POST" onSubmit="return false;" data-parsley-validate="true" v-on:submit="handelSubmit($event);">  
     **DATA COMES HERE**
    <div class="wizard-footer">
    <div class="pull-right">
    <button type="submit" class='btn btn-next btn-primary' name='next' value='Next'>Next</button>
</form>
    </div>

DATA COMES HERE

My vue js script is

I have only added ajax request

 $.ajax({
              url: 'http://127.0.0.1:8000/post/',
              data: data,
              type: "POST",
              dataType: 'json',
              success: function(e) {
              if (e.status)
              {
                alert("Success")
                vm.pid=e.pid;
                console.log(vm.pid);

            }
              else {
                vm.response = e;

               alert("Failed") 
              }
          }
            });

I need to move to next tab only if success. But now if anything happens, it is moving to next tab. How can I make button to move to next tab only if status is true. Only if alert message is success. I need to move to next tab. Please help me to solve the problem?

Wanderer
  • 705
  • 3
  • 10
  • 30

1 Answers1

1

as mention from MRustamzade who have the right answer

1.add disabled on the button by default

<div class="tab-pane" id="step1">
    <form data-parsley-validate="true" >  
     **DATA COMES HERE**
    <div class="wizard-footer">
    <div class="pull-right">
    <button type="submit" class='btn btn-next btn-primary' disabled name='next' value='Next'>Next</button>
    </form>
</div>

2.remove disabled only if e.success = true

$('form').submit(function(e){
    var data = $(this).serializeArray();
    var btn= $(this).find('.btn-next');
    var btnText = btn.text();
    $.ajax({
        url: 'http://127.0.0.1:8000/post/',
        data: data,
        type: "POST",
        dataType: 'json',
        beforeSend: function(){
            btn.prop('disabled', true).removeClass('.btn-primary').addClass('.btn-warning').text('wait');
        },
        success: function(e) {
        if (e.status)
          {
            btn.removeClass('.btn-warning').addClass('.btn-success').text('success');
            vm.pid=e.pid;
                        setTimeout(function(){
                            btn.prop('disabled',false).removeClass('.btn-success').addClass('.btn-primary').text(btnText);
            },2000);
        }
          else {
                        btn.removeClass('.btn-warning').addClass('.btn-danger').text('failed');
            vm.response = e;
            setTimeout(function(){
                            btn.removeClass('.btn-danger').addClass('.btn-primary').text(btnText);
            },2000);
          }


        },
        error: function(e){
            console.log(e); //for debug the error msg
            btn.removeClass('.btn-warning').addClass('.btn-danger').text('error');
            setTimeout(function(){
                btn.removeClass('.btn-danger').addClass('.btn-primary').text(btnText);
            },2000);
        }
    });
});
plonknimbuzz
  • 2,594
  • 2
  • 19
  • 31