0

SmartWizard に以下のコード部分があります。各 HTML コントロールにカスタム検証を追加したいと考えています。

  <form id="myform">
    <input type="text" name="field1" />
    <br/>
    <input type="text" name="field2" />
    <br/>
    <input type="submit" />
</form>  

以下のコードを試しましたが、動作しません。

function leaveAStepCallback(obj){
               var step_num= obj.attr('rel'); // get the current step number
        return validateSteps(step_num); // return false to stay on step and true to continue navigation 
      }
4

2 に答える 2

3

これはかなり古くなっていることはわかっていますが、自分でやる前にこの投稿を見つけたので、とにかく答えます

//..init wizard
onLeaveStep: function(obj, context){ 
    //Validate the current step                                  
    var frst = "#step-"+context.fromStep;
    var container = this.elmStepContainer.find(frst);
    //container now contains everything in the box
    //you can now container.find("...") to get fields
    //and then run some regex or whatever you want to do the validation
    if(invalid_fields.length > 0){
        return false ;
    }else{ return true;}},
//...the rest of the wizard init
于 2015-04-17T09:26:20.093 に答える
1

これは、同じ問題を探している他の人に役立ちます。この実装は、プラグインのバージョン 4 からのものです。このイベント メソッドに対して false を返すと、ステップの伝播が停止するため、同じステップにとどまり、エラーが発生します。

$("#smartwizard").on("leaveStep", function(e, anchorObject, stepNumber) {
    var formElms = $(anchorObject.attr('href')).find("input, textarea");
    var hasError = false;
    $.each(formElms, function(i, elm){
        if(elm.val().length == 0){
           hasError = true;
        }
    });
    return !hasError;
});
于 2016-11-01T10:46:25.107 に答える