博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跨浏览器的placeholder
阅读量:6582 次
发布时间:2019-06-24

本文共 3505 字,大约阅读时间需要 11 分钟。

 如何实现跨浏览器的placeholder效果呢? 

先看下效果

 

 

js代码如下:

 

Js代码  
  1. $('#username').placeholder({  
  2.         word: '用户名', color: '#ddd', normalFontColor: '#f00', maxLen: 4, minLen: 2, errorBorderClass: 'errorBorder',  
  3.         keyup_callback: function () {  
  4.             console.log('keyup_callback');  
  5.         }  
  6.     });  
  7.     $('#password').placeholder({word: '请输入密码', normalFontColor: '#f00', color: '#ddd'}, function () {  
  8.         console.log('callback');  
  9.     });  

 参数说明:

 

 

html实例

Html代码  
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head lang="en">  
  4.     <meta charset="UTF-8">  
  5.     <title>label左对齐</title>  
  6.     <style>  
  7.         ul, li {  
  8.             /*list-style: outside none none;*/  
  9.             list-style-type: none;  
  10.             margin-left: 0;  
  11.         }  
  12.   
  13.         li label {  
  14.             width: 20%;  
  15.             float: left; /* It is necessary */  
  16.         }  
  17.   
  18.   
  19.         li.button {  
  20.             text-align: center;  
  21.             margin-left: -40px;  
  22.         }  
  23.   
  24.         input.errorBorder {  
  25.             border: solid 1px #ff0000;  
  26.         }  
  27.     </style>  
  28. </head>  
  29. <body>  
  30. <form action="">  
  31.     <ul style="width: 400px">  
  32.         <li>  
  33.             <label for="username">用户名</label><input id="username" type="text"/> <span>用户名不能为空</span>  
  34.         </li>  
  35.         <li>  
  36.             <label for="password">密码</label><input id="password" type="text"/>  
  37.         </li>  
  38.         <li class="button">  
  39.             <input type="button" value="下一步"/>  
  40.         </li>  
  41.     </ul>  
  42. </form>  
  43. <script type="text/javascript" src="jquery-1.11.1.js"></script>  
  44. <script type="text/javascript" src="common_util.js"></script>  
  45. <script type="text/javascript" src="jplaceholder.js"></script>  
  46. <script type="text/javascript">  
  47.   
  48.     $('#username').placeholder({  
  49.         word: '用户名', color: '#ddd', normalFontColor: '#f00', maxLen: 5, minLen: 2, errorBorderClass: 'errorBorder',  
  50.         keyup_callback: function () {  
  51.             console.log('keyup_callback');  
  52.         },keydown_callback: function () {  
  53.             console.log('keydown...');  
  54.         }  
  55.     });  
  56.     $('#password').placeholder({word: '请输入密码', normalFontColor: '#f00', color: '#ddd'}, function () {  
  57.         console.log('callback');  
  58.     });  
  59.   
  60.   
  61.   
  62. </script>  
  63. </body>  
  64. </html>  

 使用示例:

Js代码  
  1. var $invoice_title = $('input[name=invoice_title]');  
  2.     $invoice_title.inputclean({  
  3.         inputClearClass: 'inputClearBtn',  
  4.         deviationTop: 0,  
  5.         parentHoverClass: 'inputParentLi',  
  6.         deviationLeft: 2  
  7.     });  
  8.     $invoice_title.placeholder({  
  9.         word: '请输入抬头信息',  
  10.         color: '#ddd',  
  11.         normalFontColor: '#000'/* maxLen: 4, minLen: 2,*/  
  12.         errorBorderClass: 'errorBorder',  
  13.         parentInputFocusClass: 'inputFocus',  
  14.         isAdapterInputclean: true  
  15.     });  
  16.   
  17.     var $address_detail = $('input[name=address_detail]');  
  18.     $address_detail.inputclean({  
  19.         inputClearClass: 'inputClearBtn',  
  20.         deviationTop: 0,  
  21.         parentHoverClass: 'inputParentLi',  
  22.         deviationLeft: 2  
  23.     });  
  24.     $address_detail.placeholder({  
  25.         word: '请输入详细地址',  
  26.         color: '#ddd',  
  27.         normalFontColor: '#000'/* maxLen: 4, minLen: 2,*/  
  28.         errorBorderClass: 'errorBorder',  
  29.         parentInputFocusClass: 'inputFocus',  
  30.         isAdapterInputclean: true  
  31.     });  

 

Js代码  
  1. $ChanjetNewCodeInput.placeholder({  
  2.                word: ERROR_MESSAGE_SMSCODE_PLEASE_INPUT,  
  3.                color: '#999',  
  4.                normalFontColor: '#333333',  
  5.                keyup_callback: CodeInputKeyUp,  
  6.                focus_callback: CodeInputKeyUp,  
  7.                blur_callback: function () {  
  8.                    checkSMSCode($ChanjetNewCodeInput, $newSMSCodeMsg, true)  
  9.                }  
  10.            });  
  11.            $ChanjetNewMobileInput.placeholder({  
  12.                word: '请输入11位有效手机号码',  
  13.                color: '#999',  
  14.                normalFontColor: '#333333',  
  15.                keyup_callback: NewMobileInputKeyUp,  
  16.                focus_callback: function () {  
  17.                    normalBorderInput($ChanjetNewMobileInput);  
  18.                },  
  19.                blur_callback: function (event) {  
  20.                    //var eventTarget = event.srcElement || event.target || event.toElement;  
  21.                    var mobileVal = $ChanjetNewMobileInput.val();  
  22.                    if (!isMobile(mobileVal)) {  
  23.                        setNewMobileMsg('newMobileError''请输入11位有效手机号码');  
  24.                        disAbleNextBtn($('#getNewSMSCode'));  
  25.                        errorBorderInput($ChanjetNewMobileInput);  
  26.                    }  
  27.                }  
  28.            });  

 注意:

1,属性color 表示placeholder的字体颜色;

2,isAdapterInputclean 表示兼容inputFocus,怎么兼容呢?

inputFocus的效果就是文本框聚焦时× 是永久显示的,不管光标在什么地方;当失去光标时,只有hover时才显示×

所以文本聚焦时会应用一个css class,当失去焦点时就要移除该class

 

你可能感兴趣的文章
统一管理MOSS2010用户头像
查看>>
scp命令不需要输入用户密码传输
查看>>
Jenkins学习笔记 系列3--trigger插件配置
查看>>
Linux的企业-docker简介及操作
查看>>
/lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
查看>>
在北邮做《开源中国说》演讲
查看>>
边缘计算赋能数字化新模式,施耐德电气再度领跑行业
查看>>
如何清空sql server sa密码
查看>>
DOM——拷贝.clone()与替换.replaceWith() 和.replaceAll()及包裹.wrap()
查看>>
硬链接与软链接简单说明
查看>>
MySQL查看和修改表的存储引擎
查看>>
解决缺少sql头文件编译错误
查看>>
Docker镜像和容器
查看>>
CentOS系统启动流程
查看>>
分布式数据库之事务隔离性
查看>>
mysql总结3→单表查询1
查看>>
ADO判断ACCESS字段值是否为NULL
查看>>
教你打包自己的专属docker镜像
查看>>
MySQL主从多种架构部署及常见错误问题解析
查看>>
关于负载均衡的几个知识点
查看>>