您的位置:新葡亰496net > 奥门新萄京娱乐场 > 证实准绳,Engine调用外表函数验证

证实准绳,Engine调用外表函数验证

发布时间:2019-10-12 01:41编辑:奥门新萄京娱乐场浏览(143)

    yii2模型的表明法规,轻易的运用自家就不详细说了,想看的能够去看
    证实准绳,Engine调用外表函数验证。官方网址教程

    社区网民教程

    此地自身想说一下,rules法则里面,加衡量规范的意况
    比如,比如自身想达成五个字段至稀有叁个是必填的尺度,那时就须求在required里面加决断规范了,
    之前查资料本国文书档案都不曾写什么做,laravel框架有required_without来判断
    新兴在stackoverflow上找到了足以加when和whenclient条件,上面网上朋友教程也波及了,那是本人在Google上找到有关音信后,
    又来百度查,只找到这一篇,但是相关内容写的不详细。
    when 代表服务器端的剖断规范,生效条件。
    whenclient 代表是客商端的推断规范,js生效条件。
    以下是自个儿的代码,仅供参照他事他说加以考察

    在运用jQuery Validation Engine的时候,大家除了选用自带的API之外,还足以友善自定义正则验证。自定义正则验证上一篇已经讲过了,假使想选拔自定义函数进行认证如何做?其实这几个控件有个bug,在api中说

                [
                    'executor_id',
                    'required',
                    'when' => function ($model) {
                        return empty($model->doctor_id);
                    },
                    'whenClient' => "function (attribute, value) {
                        return $('#doctor_id').value == '';
                    }",
                     'on' => 'assgin',
                ],
                [
                    'doctor_id',
                    'required',
                    'when' => function ($model) {
                        return empty($model->executor_id);
                    },
                    'whenClient' => "function (attribute, value) {
                        return $('#executor_id').value == '';
                    }",
                    'on' => 'assgin',
                ]        
    

    新葡亰496net 1

     

    也正是在大家须要开展验证的地点加上funcCall[自定义函数名],不过我们会发掘总会报错,说找不到你这几个函数名。其实它的渴求是要加多required举办归结验证,也正是validate[required,funcCall[yorn]],那样它才识别大家的自定义函数。可是大家正是不想要required那些啊?或然说我们在切合某种条件下才想让required那几个非空验证效能生效呢?

    小结:驾驭高超了追寻本事对于查找所需知识是老大关键的啊

     <textarea class="m-area add-tw validate[funcCall[yorn]]"  id="remark" cols="30" rows="10" ></textarea>

     

    那么就必要选拔以下两种方式综合推行,网络老外的消除办法正是在函数中push多少个required,能够让其健康推行。

    自己定义了二个yorn的函数,而基本格式正是function yorn(田野先生, rules, i, options){},在这之中田野同志代表的是您作证的丰富成分,小编这里表明的是textarea,那么田野就象征的是textarea。

    新葡亰496net 2

    第一自身讲一下本身要兑现的功能,作者的急需是在点击不经过且备注为空的时候接触验证,提示“必需填写内容”。那么在经过备考为空,通过备考不为空,不通过备考不为空的事态下都不能够接触验证提醒消息。而只要validate[required]这样的话,只要不填写备注音信都会触发提示音信。所以作者的思路是,当点击保存开关的时等候法庭判果决,点击的是哪位radio,点击不经过的时候给不经过的radio增多二个自定义属性,同期赋值。而当点击通过radio的时候删除那个自定义属性。然后跟着步入验证,约等于步入自定义函数,获取到不通过radio的自定义属性值,获取到备注的value,然后决断那五个标准是或不是同不经常候创立,假若条件建设构造,则首先rules.push('required');因为大家日前说了固然想要完结自定义函数验证必得求有required,然后随着return options.allrules.required.alertText; 那句话是何许意思啊?就是再次回到您要唤醒的新闻。而以此提醒消息则另有地方开展安装。

    html文件,validate[funcCall[yorn]]设置自定义函数validate[funcCall[自定义函数名]]
    
    <form id="approval">//这个验证控件必须有form
                <div class="name-ipt">
                    <div class="m-name">意见:</div>
                    <input type="radio" name="trial" class="m-radio col" />通过
                    <input type="radio" name="trial" class="m-radio col"  id="nocheck"/>不通过
                </div>
                <div class="name-ipt"></div>
                <div class="area-ipt add-td">
                    <div class="m-name">备注:</div>
                    <textarea class="m-area add-tw validate[funcCall[yorn]]" id="remark" cols="30" rows="10"></textarea>
                    剩余可输入1000字
                </div>
            </div>
    </form>
    <div class="add-sb">
         <a href="#" class="save-btn m" ng-click="saveAudit()" >保存</a>
    </div>
    (有效:步骤1)
    

    因为作者是用的angular,所以给保存多少个事变,在点击保存的时候接触事件,然后决断两个radio哪个被checked,别的的下边说过。接着触发验证进入自定义函数中。、、

    //自己js文件中写
    //保存
    
                        $scope.saveAudit = function(){
                            if($('#nocheck').attr('checked')){
                                $("#remark").attr("trialAttr",'N');
                            }else{
                                $("#remark").removeAttr('trialAttr');
                            }
                            if($('#approval').validationEngine('validate')){
    //验证通过的话之后要执行的内容
    }
    }
    (有效:步骤2)
    

     

    自定义函数必得带rules.push('required');相同的时间return options.allrules.required.alertText;那一个自定义函数写在和煦的js文件里就行

    //自己的js文件中写
    function yorn(field, rules, i, options){
            var trialAttr = field.attr("trialAttr") ;
            var textareaval = field.val();
    
            if(trialAttr == "N" && textareaval==''){
                rules.push('required');
                return options.allrules.required.alertText;
            }
    }
    (有效:步骤3)
    

    接下去要设置自定义提醒新闻了,找到jquery.validationEngine-zh_CN.js文件,然后在最下边自身跟随一个对象,函数名在前方,后边alertText后跟你要提醒的新闻。那样就OK了。

    //这个在jquery.validationEngine-zh_CN.js中写

    新葡亰496net 3(有效:步骤4)

     

    前边小编在此个文件的上面根据api自定义了二个函数,可是开掘根本不可能施行,因为当步入验证的时候,首先决断validate[required,funcCall[yorn]]的自定义函数中是还是不是留存required,借使不设有就无法步入到jquery.validationEngine-zh_新葡亰496net,CN.js那些文件中实施大家之中定义的函数。可是假使把自定义函数放在大家协和的js中,就能够先实施大家友好js文件中的函数,最终才看清是或不是存在required,而以此时候大家早已push进去了,所以就不会报错说找不到你自定义函数名了。

    新葡亰496net 4(那么些是无用且不可实行的,不要用)

    那一个申明控件其实挺不错的,只是这几个bug给搞了半天,幸好英特网有消除办法,可是日常未有叁个像自个儿说的这么精晓的,都以点美素佳儿下而已。希望能够协助到我们,同一时间自个儿留存以往用。

    本文由新葡亰496net发布于奥门新萄京娱乐场,转载请注明出处:证实准绳,Engine调用外表函数验证

    关键词: