美文网首页
vue-strap 表单验证 修复

vue-strap 表单验证 修复

作者: Armin0202 | 来源:发表于2016-10-14 15:35 被阅读61次

    html

    <div class="panel panel-default affiche-det-edit">
        <!-- 添加 name="url" 属性,便于js判断。 error="请输入标题",为错误时的文本提示 -->
        <bs-input :value.sync="affdata.title" name="title" placeholder="请输入标题" label="标题*: " required icon minlength="1" error="请输入标题"></bs-input>
        <datepicker :value.sync="affdata.publish_date" name="publish_date" format="yyyy-MM-dd" width="100%"></datepicker>
    </div>
    

    js

        
    methods: {
        updateInfo () {
            /** 校验不通过时,直接退出,不发送网络请求 --start **/
            if(!this.validator()){return false};
            /** 校验不通过时,直接退出,不发送网络请求 --end **/
            sendAjax({
    
            });
        },
    
        /** 未填的必填项,高亮提示 --start **/
        validator(){
            let isSuccess = true;  // 返回校验状态 true/false
            let affdataTmp = this.affdata;
            // const requiredFiled = ['title', 'author', 'publish_date', 'share_desc', 'share_title'];  // 必填字段
            const requiredFiled = {  // 必填字段
                'title': '标题',
                'author': '作者',
                'publish_date': '公告日期',
                'share_title': '分享标题',
                'share_desc': '分享描述'
            };
            const $editElement = $('.affiche-det-edit');  // 包含所有表单的节点
    
            let msg = '必填字段:';
    
            for(let item in affdataTmp){
                let currentItem = affdataTmp[item];
                if(Object.keys(requiredFiled).indexOf(item) !== -1 && (currentItem === '' || currentItem === null)){
                    msg += `${requiredFiled[item]}、`;
                    isSuccess = false;  // 校验不通过
                    const $operateElement = $editElement.find('[name='+item+']');
    
                    // 手动触发一次 焦点的获取与失去,导致触发 vue-strap 的未填高亮提示
                    ($operateElement[0].tagName.toLowerCase() === 'input') ? ($operateElement.focus().blur()) : ($operateElement.find('input').focus().blur());
                };
            };
    
            msg = msg.replace(/、$/g, '');
            window.layer.open({title:' ',icon:2,area : ['450px','250px'],content:msg});
            return isSuccess;
        },
        /** 未填的必填项,高亮提示 --end **/
    }
    
    

    相关文章

      网友评论

          本文标题:vue-strap 表单验证 修复

          本文链接:https://www.haomeiwen.com/subject/rkagyttx.html