在IE8等不支持placeholder属性的浏览器中模拟placeholder效果
2015-04-14 11:44
906 查看
placeholder是一个很有用的属性,可以提示用户在input框中输入正确的内容,但是IE8以及IE8一下的浏览器不支持该属性,我们可以使用js来模拟相似的效果。下面直接上代码:
'placeholder' in document.createElement('input') ,该行代码利用 in 表达式来判断浏览器中的 input 元素中是否有 placeholder 属性存在。
$('[placeholder]') 是一个Jquery 的属性选择器,选择页面上所有的具有 placheholder 属性的元素。在页面加载完成时我们首先调用 blur() 方法,将所有 input 元素的值 设置 为 input 属性 placeholder 对应的值,从而模拟 placeholder 的效果。
效果如下图所示:
选中 input 时的效果:
<!doctype html> <html> <header> <meta charset="utf-8"> <title>placeholder</title> <style type="text/css"> *{margin:0;padding:0;} form {margin:50px;} input {display:block;margin:0 0 6px 0;} </style> </header> <body> <form> 用户名:<input name="name" placeholder="请输入用户名"/> 密码:<input name="password" placeholder="请输入登陆密码"/> </form> <script type="text/javascript" src="jquery-1.11.1.min.js"></script> <script type="text/javascript"> $(function(){ function placeholderSupport() { // 判断浏览器是否支持 placeholder return 'placeholder' in document.createElement('input'); } if(!placeholderSupport()){ $(document).on('focus', '[placeholder]',function() { var input = $(this); if (input.val() == input.attr('placeholder')) { input.val(''); input.removeClass('placeholder'); } }); $(document).on('blur', '[placeholder]',function() { var input = $(this); if (input.val() == '' || input.val() == input.attr('placeholder')) { input.addClass('placeholder'); input.val(input.attr('placeholder')); } }); $('[placeholder]').blur(); }; }); </script> </body> </html>
'placeholder' in document.createElement('input') ,该行代码利用 in 表达式来判断浏览器中的 input 元素中是否有 placeholder 属性存在。
$('[placeholder]') 是一个Jquery 的属性选择器,选择页面上所有的具有 placheholder 属性的元素。在页面加载完成时我们首先调用 blur() 方法,将所有 input 元素的值 设置 为 input 属性 placeholder 对应的值,从而模拟 placeholder 的效果。
效果如下图所示:
选中 input 时的效果:
相关文章推荐
- ie8浏览器不支持placeholder属性
- jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
- 商品SKU属性添加、上传图片、生成列表并生成json传给后台(支持IE8、谷歌、火狐等主流浏览器)
- ie8以下版本(包括ie8)的浏览器不支持html5标签属性解决方案(Modernizr 2.6.2插件的使用)
- 基于jQuery的让非HTML5浏览器支持placeholder属性的代码
- 让低版本浏览器支持input的placeholder属性(js方法)
- HTML5属性placeholder,支持IE6、7、8浏览器
- 让IE6/IE7/IE8浏览器支持CSS3属性
- 基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转)
- jQuery代码让非HTML5浏览器支持placeholder属性 - 更新v1.1
- div支持placeholder属性/模拟输入框的placeholder属性
- IE8不支持属性placeholder
- ie8以下版本(包括ie8)的浏览器不支持html5标签属性解决方案
- 让IE6/IE7/IE8浏览器支持CSS3属性
- 让IE6/IE7/IE8浏览器支持CSS3属性
- 让IE6/IE7/IE8浏览器支持CSS3属性
- 自定义插件-让IE9以下的浏览器支持H5属性placeholder
- 让低版本浏览器支持input的placeholder属性(js方法)
- 让ie8支持 placeholder 属性
- html5 placeholder 属性 并检测浏览器是否支持这个属性