Jquery实现IE6 7 8 兼容placeholder属性
2015-09-23 15:12
666 查看
var JPlaceHolder = { //检测 _check : function(){ return 'placeholder' in document.createElement('input'); }, //初始化 init : function(){ if(!this._check()){ this.fix(); } }, //修复,该方法简单,但是有一个弊端:不填写的时候输入框也有值,需要在提交表单的时候过滤掉默认值 fix : function(){ $('[placeholder]').focus(function() { var input = $(this); if (input.val() == input.attr('placeholder')) { input.val(''); input.removeClass('my-placeholder'); } }).blur(function() { var input = $(this); if (input.val() == '' || input.val() == input.attr('placeholder')) { input.addClass('my-placeholder'); input.val(input.attr('placeholder')); } }).blur(); }, //修复2,该方法不会出现上述弊端,但是如果输入框初始是隐藏的话,定位left 和 top可能会出现为0的情况。这时,可以默认显示输入框,再用js在页面加载完成后隐藏就可以了 fix : function(){ jQuery(':input[placeholder]').each(function(index, element) { var self = $(this), txt = self.attr('placeholder'); var pos = self.position(), h = self.height(), paddingleft = self.css('padding-left'), paddingtop = self.css('padding-top'); var holder = $('<span></span>').text(txt).css({position:'absolute', left:pos.left, top:pos.top, height:h, paddingLeft:paddingleft,paddingTop:paddingtop, color:'#aaa'}).appendTo(self.parent()); self.focus(function(e) { holder.hide(); }).blur(function(e) { if(self.val()){ holder.hide(); }else{ holder.show(); } }).blur(); holder.click(function(e) { holder.hide(); self.focus(); }); }); } }; //调用 $(function(){ JPlaceHolder.init(); }); //css .my-placeholder{color:#c6c6c6; }
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- JavaScript演示排序算法
- 2015-2016网页设计趋势分析 Web Design of Trends
- jQuery Ajax 跨域调用
- 移动端的长按事件
- jquery教程靠边站,一分钱不花让你免费学会jquery
- JQuery+Strusts1.x无刷新登录
- jQuery菜单插件用法实例
- JQuery 初体验(建议学习jquery)
- Jquery实现的table最后一行添加样式的代码
- jQuery实现向下滑出的平滑下拉菜单效果
- jQuery 练习[一] 学习jquery的准备工作
- jquery获得页面元素的坐标值实现思路及代码
- 使用Browserify配合jQuery进行编程的超级指南
- jquery如何实现在加载完iframe的内容后再进行操作
- jquery $.ajax()取xml数据的小问题解决方法
- jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
- Jquery 表单取值赋值的一些基本操作
- jQuery实现复选框批量选择与反选的方法
- jQuery中的常用事件总结