Skip to content

Latest commit

 

History

History
62 lines (54 loc) · 1.59 KB

源码修改.md

File metadata and controls

62 lines (54 loc) · 1.59 KB

源码修改

表单校验(不提交)

form.js

Form.prototype.doVerify = function (formObj) {
    var verify = form.config.verify,
        stop = null,
        DANGER = 'layui-form-danger',
        field = {},
        elem = formObj,
        verifyElem = elem.find('*[lay-verify]') //获取需要校验的元素
    ,
        formElem = formObj[0] //获取当前所在的form元素,如果存在的话
    ,
        fieldElem = elem.find('input,select,textarea') //获取所有表单域

    //开始校验
    layui.each(verifyElem, function (_, item) {
        var othis = $(this),
            ver = othis.attr('lay-verify').split('|');
        var tips = '',
            value = othis.val();
        othis.removeClass(DANGER);
        layui.each(ver, function (_, thisVer) {
            var isFn = typeof verify[thisVer] === 'function';
            if (verify[thisVer] && (isFn ? tips = verify[thisVer](value, item) : !verify[thisVer][0].test(value))) {
                layer.msg(tips || verify[thisVer][1], {
                    icon: 5,
                    shift: 6
                });
                //非移动设备自动定位焦点
                if (!device.android && !device.ios) {
                    item.focus();
                }
                othis.addClass(DANGER);
                return stop = true;
            }
        });
        if (stop) return stop;
    });

    if (stop) {
        return false;
    } else {
        return true;
    }
};

调用

save = function(fn){
    if(!layui.form.doVerify(jQuery('form'))){
    	return false;
    }
}