本组件依赖JQuery
本人测试的JQuery 是1.8,
兼容IE8,IE9,谷歌,火狐等。
//验证输入框 function ValidateCompent(input){ var _input = $(input).clone(true); _input.css("height",$(input).css("height")); _input.css("width", $(input).css("width")); var border =_input.css("border"); this.successIconClass = "icon-tick";//验证通过时的样式 this.validate = false; this.faileIconClass = "icon-times";//验证失败时的样式 var $validateRoot = $('<div class="validate-v1-container"><div class="validate-v1-tooltip"></div></div>'); var $tooltip = $validateRoot.children(".validate-v1-tooltip"); var $input = _input; if($input != undefined){ var maxWidth = $input.css("width"); var maxHeight = $input.css("height"); $validateRoot.css("display","inline"); $validateRoot.css("position","relative"); $validateRoot.css("width",maxWidth); $validateRoot.css("height",maxHeight); $tooltip.css("width",maxWidth); $tooltip.css("padding","0px 5px"); $tooltip.css("position","absolute"); $tooltip.css("top","0px"); $tooltip.css("z-index","999999"); $tooltip.css("background-color","white"); $tooltip.css("border","solid 1px rgb(188,188,188)"); $tooltip.css("left",parseInt(maxWidth) + 10+"px"); $tooltip.hide(); var validateOption = $input.attr("data-vali-option"); if(validateOption != undefined){ validateOption = JSON.parse(validateOption); var that = this; var regvali = new Array(); $tooltip.hide(); if(validateOption.length == 0){ return; } for(var i = 0; i <validateOption.length;i++){ var message = validateOption[i].message; var pattern = validateOption[i].pattern; var reg = new RegExp(pattern); var messageView = new ValidateMessage(message,that.faileIconClass); regvali.push({"reg":reg,"view":messageView}); $tooltip.append(messageView.dom); } $tooltip.css("height",(parseInt(maxHeight) +15) * validateOption.length ); $input.on("textchange focus",function(e){ $tooltip.show(); for(var i = 0 ; i < regvali.length; i++){ if(regvali[i].reg.test($input.val())){ regvali[i].view.setIconClass(that.successIconClass); regvali[i].view.dom.css("color","green"); }else{ regvali[i].view.setIconClass(that.faileIconClass); regvali[i].view.dom.css("color","red"); } } }) $input.on("blur", function(e) { $tooltip.hide(); for(var i = 0 ; i < regvali.length; i++){ if(regvali[i].reg.test($input.val())){ regvali[i].view.setIconClass(that.successIconClass); $input.css("border",border); that.validate = true; }else{ regvali[i].view.setIconClass(that.faileIconClass); $input.css("border","1px solid red"); that.validate = false; break; } } }); $validateRoot.append($input); }else{ return; } } this.dom = function(){ return $validateRoot; } function ValidateMessage(message,iconFontClass){ var dom = $('<div class="validate-message"><span class="vticon"></span><span class="vmessage"></span></div>'); var $icon = dom.children(".vticon"); var $message = dom.children(".vmessage"); $message.css("line-height","28px"); $message.css("padding","5px 5px"); $message.css("padding-right","10px"); $message.css("word-break","break-all"); $message.css("word-wrap","break-word"); $message.css("font-size","14px"); $message.css("position","relative"); $message.css("z-index","999999"); this.setIconClass = function(iconClass){ $icon.removeClass(); $icon.addClass("vticon"); $icon.addClass(iconClass); } this.getIcon = function(){ return $icon; } this.setMessageText = function(_message){ $message.html(_message); } this.getMessageText = function(){ return $message; } this.setIconClass(iconFontClass); this.setMessageText(message); this.dom = dom; } $validateRoot.insertAfter($(input)); $(input).remove(); }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:使用JS组件实现带ToolTip验证框的实例代码-创新互联
标题网址:https://www.cdcxhl.com/article30/dsjeso.html
成都网站建设公司_创新互联,为您提供网站排名、移动网站建设、手机网站建设、网站制作、App开发、面包屑导航
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联