vue-strap 表单验证 修复

html

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 表单验证 修复)