跨浏览器的placeholder

简介:

 如何实现跨浏览器的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

 


相关文章
|
前端开发
使用 div 实现 input、textarea 输入框,并支持 placeholder 属性(解决浏览器兼容问题)
使用 div 实现 input、textarea 输入框,并支持 placeholder 属性(解决浏览器兼容问题)
211 0
|
Web App开发 iOS开发
Bug: Safari浏览器input框placeholder和内容都不显示
Bug: Safari浏览器input框placeholder和内容都不显示
269 0
|
Web App开发 移动开发 iOS开发
placeholder在不同浏览器下的表现及兼容方法
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:15px; border:0px; font-family:Arial,sans-serif; font-size:14px; line-height:24px; vertical-align:baseline; color:rgb(85
1440 0
|
移动开发 JavaScript HTML5
HTML5实践 -- 实现跨浏览器HTML5文字占位符 - placeholder
  转载请注明原创地址:http://www.cnblogs.com/softlover/archive/2012/11/20/2779878.html      html5为web的form表单增强了一个功能,他就是input的占位符--placeholder。
937 0
|
20天前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
18天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
475 1
|
1月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
125 0
|
2月前
|
JavaScript 前端开发
js之浏览器对象|28
js之浏览器对象|28
下一篇
无影云桌面