Keine Beschreibung

text.js 1.9KB

    $.use(["jQuery", "form", "util"], function($, form, util) { var m_rd="不可为空或空字符串",trim = "trim", readOnly = "readOnly", showOnly = "showOnly", modelName = 'text', tInt = "int", tBool = "bool", tFloat = "float", tString = "string", pw = "password", def = "defVal", placeholder = "placeholder", required = "required"; form.register(function($e) { var cls = util.classCheck($e[0], [modelName, trim, readOnly, showOnly, tInt, tBool, tFloat, pw,required ]); if(cls[modelName]) { var n = $e.attr("name") || $e.attr("id"), ve, rules = []; if(!n) { throw "Attribute[name] is invalid"; } dv = $e.attr(def) || ""; $e.empty(); if(cls[showOnly]) { $e.text(dv); } else { ve = $("<input type='" + (cls[pw] ? pw : modelName) + "' />"); var tmp = $e.attr(placeholder); if(tmp) ve.attr(placeholder, tmp); if(cls[readOnly]) ve.prop('readonly', "readonly"); ve.val(dv); ve.appendTo($e); } return { name: n, get: function() { if(!cls[showOnly]) { var vd = cls[trim]?ve.val().trim():ve.val(); if(vd) { if(cls[tInt]) { vd = parseInt(vd); if(!isNaN(vd)) { return vd }; } else if(cls[tFloat]) { vd = parseFloat(vd); if(!isNaN(vd)) { return vd }; } else { return vd; } } } }, set: function(data) { if(cls[showOnly]) { $e.text(data) } else { ve.val(data); } }, validate: function() { if(cls[required]) { if(!ve.val().trim()) { this.invalid(m_rd) return m_rd; } } return util.validate(rules, this); }, addRules: function(rule) { util.addRules(rules, rule); }, reset: function() { this.set(dv); }, valid: function() { util.valid($e); }, invalid: function(reson) { util.invalid($e); util.error(reson); } }; } }); });