如何在进入最后一步之前提交智能表单向导

时间:2013-10-25 07:59:13

标签: php jquery smart-wizard

我在我的项目中使用SmartWizard让用户在我的网站上注册。但我想保存步骤3中的所有数据,其中向导有四个步骤。单击完成按钮后,向导将提交表单。下面的代码将描述我的假设,任何人都可以建议一种方法来做到这一点。感谢。

    function validateAllSteps(){
   var isStepValid = true;

   if(validateStep1() == false){
     isStepValid = false;
     $('#wizard').smartWizard('setError',{stepnum:1,iserror:true});         
   }else{
     $('#wizard').smartWizard('setError',{stepnum:1,iserror:false});
   }

   if(validateStep2() == false){
     isStepValid = false;
     $('#wizard').smartWizard('setError',{stepnum:2,iserror:true});         
   }else{
     $('#wizard').smartWizard('setError',{stepnum:2,iserror:false});
   }

   return isStepValid;
}   


    function validateSteps(step){
      var isStepValid = true;

  // validate step 1
  if(step == 1){
    if(validateStep1() == false ){
      isStepValid = false; 
      $('#wizard').smartWizard('showMessage','Please correct the errors in step'+step+  
   ' and click next.');
      $('#wizard').smartWizard('setError',{stepnum:step,iserror:true});         
    }else{
      $('#wizard').smartWizard('setError',{stepnum:step,iserror:false});
    }
  }

  // validate step 2
  if(step == 2){
    if(validateStep2() == false ){
      isStepValid = false; 
      $('#wizard').smartWizard('showMessage','Please correct the errors in step'+step+  
  ' and click next.');
      $('#wizard').smartWizard('setError',{stepnum:step,iserror:true});         
    }else{
      $('#wizard').smartWizard('setError',{stepnum:step,iserror:false});
    }
  }


   return isStepValid;
 }
    //start of step one validation

    //end of of step one validation

//step 2 validation

//end of step 2 validation

var res=validateAllSteps();
if(res == true)
{
    $('#form1').submit();
}

2 个答案:

答案 0 :(得分:1)

您可以在步骤离开事件"上绑定到"智能向导

$("#smtwrdConf").on("leaveStep", function (e, anchorObject, stepNumber, stepDirection) {
   //you can perform step-by-step validation 

如果(validatestep)     }

如果下一步= stepnumber + 2 == 4,请提交表格

答案 1 :(得分:0)

修改插件,以便您有另一个按钮,例如“保存部分”。然后添加一个名为“onSavePartial”的事件处理程序。在插件初始化期间,你可以添加要调用的回调。然后在此回电中提交您的表单。

 jQuery('#wizard').smartWizard({
 selected:currentStep,
 enableAllSteps:enableSteps,
 transitionEffect:'slideleft',
 onLeaveStep:leaveAStepCallback,
 onFinish:onFinishCallback,
 onSavePartial:onSavePartialCallBack,
 enableFinishButton:false,
 });

这是onSavePartialCallBack函数

function onContinueLaterCallback(){
    //your validation and other stuff here

    jQuery('form').submit();
}

NB你必须破解它的插件才能显示按钮,并处理onSavePartial thingy