纯手写漂亮的表单验证

因为是自定义样式,所以 兼容所有浏览器版本,个人认为非常漂亮: 

图:

css

 1   <style>
 2         /*tooltip*//* CSS属性顺序按照 字母首字母 排列*/
 3 .ui-slider-tooltip{    background:#f5a455;     border:1px solid #f5a455;    color:#fff;    display: block;    text-align: left;    padding: 5px 3px 5px 5px;    position: absolute;    z-index:99999; }
 4 .ui-corner-all {    border-radius: 3px;    -moz-border-radius-bottomleft:3px;    -moz-border-radius-bottomright:3px;    -moz-border-radius-topleft:3px;    -moz-border-radius-topright:3px;    -webkit-border-top-left-radius:3px 3px;    -webkit-border-top-right-radius:3px 3px;-webkit-border-bottom-right-radius:3px 3px;    -webkit-border-bottom-left-radius:3px 3px;}
 5 .ui-tooltip-pointer-down {    border-bottom-width: 0;    border-left: 7px dashed transparent;     border-right: 7px dashed transparent;    border-top: 8px solid #f5a455;    bottom:    -8px;    display: block;    height:0;    left: 18%;    margin-left: -7px;    position: absolute;     width:0;}
 6 .ui-tooltip-pointer-down-inner {    border-left: 6px dashed transparent;     border-right: 6px dashed transparent;    border-top: 7px solid #f5a455;    left: -6px;    top: -9px;    position: absolute; }
 7 .tip{    font-size:9pt;    line-height:18px;}
 8  .error{ border: 1px solid rgb(223, 74, 67);}
 9   
10 
11     </style>

前台

1 <input type="text" id="userName"/>
2  <input type="button" onclick="submitOneClickApply()"/>

js:

1  function submitOneClickApply() {
2 
3         var username = $("#userName").val();
4  
5         if (username == ""  ) {
6             $("#userName").rzAlertTips({ flagInfo: '请输入联系人' });// $("#userName").rzAlertTips(); 只要你的 placeholder="请输入联系人" 它就能提示“请输入联系人”}
7 }

调用的js:

 1 <script type="text/javascript">
 2     (function ($) {
 3         jQuery.fn.extend({
 4             rzAlertTips: function (settings) {
 5                 $(this).each(function () {
 6                     //初始化配置信息
 7                     var options = jQuery.extend({
 8                         flagCss: "tip",
 9                         flagWidth: $(this).outerWidth(),
10                         flagInfo: $(this).attr("placeholder"),
11                         isAnimate: true
12                     },
13         settings);
14                     if (!options.flagInfo) {
15                         return;
16                     }
17                     $(this).removeAttr("title");
18                     var obj = $(this);
19                     var oToolTip = null;
20                     var fun_show = function () {
21                         //设置提示信息最小宽度为163
22 
23                         options.flagWidth = "auto"; // (parseInt(options.flagWidth) < 100) ? 163 : parseInt(options.flagWidth);+ "px"
24                         var oTip = $("<div class='ui-slider-tooltip  ui-corner-all'  id='tipWrap_" + $(this).attr("id") + "'></div>");
25                         var oPointer = $("<div class='ui-tooltip-pointer-down'><div class='ui-tooltip-pointer-down-inner'></div></div>");
26                         var oTipInfo = $("<div>" + options.flagInfo + "</div>").attr("class", options.flagCss).css("width", options.flagWidth);
27                         //合并提示信息
28                         oToolTip = $(oTip).append(oTipInfo).append(oPointer);
29                         if ($("#tipWrap_" + $(this).attr("id")).length > 0) $("#tipWrap_" + $(this).attr("id")).remove();
30                         //添加淡入效果
31                         if (options.isAnimate) {
32                             $(oToolTip).fadeIn("slow");
33                         }
34                         $(obj).after(oToolTip);
35                         //计算提示信息的top、left和width   //position.top 
36                         var position = $(obj).position();
37                         var oTipTop = eval(position.top - $(oTip).outerHeight() - 8);
38                         var oTipLeft = position.left;
39 
40 
41                         $(oToolTip).css("top", oTipTop + "px").css("left", oTipLeft + "px");
42                     };
43                     fun_show();
44                     $('.error').removeClass('error');
45                     $(this).addClass("error");
46                     setTimeout(function () { $(oToolTip).remove(); }, 3000);
47 
48                 });
49                 return this;
50             } 
51     })(jQuery);
52 </script>

 

posted @ 2015-11-18 16:05  我_爱编程  阅读(1056)  评论(0编辑  收藏  举报