[干货]兼容HTML5的Placeholder属性-更新版v0.10102013
HTML5对Web Form做了许多增强,比如input新增的type类型、Form Validation等。Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失。
这里提供了Placeholder的兼容方法,更新如下:
1.将方法修改为node原生对象的继承对象
2.兼容input类型为password的文本框
3.提供样式名称作为参数,可以灵活设置样式,修正样式设置一处问题
4.解决了事件监听兼容性问题
5.提供jquery插件版
这里提供jquery的片段,详细说明、在线演示见:
http://levi.cg.am/?p=3171
1. [代码]先来看看调用方法:
// 特定某一个文本对象
$('#tmp').PlaceHolder('abc');
// 设定所有文本对象
$('input').PlaceHolder('abc');
// 一劳永逸调用方法
$('[placeholder]').PlaceHolder('abc');
2. [代码]js方法如下:
;(function($) {
$.fn.PlaceHolder = function(className) {
var _set = function($em, opt) {
for (i in opt) {
switch(i) {
case 'value': $em.val(opt[i]); break;
case 'class':
if (opt[i].length) {
$em.toggleClass(opt[i]);
}
break;
default: $em.attr(i, opt[i]);
}
}
};
if ('placeholder' in $('<input />')[0]) {
return this;
}
return this.each(function() {
var $this = $(this),
init = {
'type': $this.attr('type'),
'placeholder': $this.attr('placeholder')
};http://www.huiyi8.com/huawen/
$this.bind({花纹
'init': function(){
_set($(this), {
'type': init.type,
'class': className ? className : '',
'value': ''
});
},
'opts': function() {
_set($(this), {
'type': 'text',
'class': className ? className : '',
'value': init.placeholder
});
},
'focus': function() {
var $this = $(this);
if ($this.val() == init.placeholder) {
$this.trigger('init');
}
},
'blur': function() {
var $this = $(this);
if ($this.val() == '') {
$this.trigger('opts');
}
}
});
if (init.placeholder && $this[0].value != undefined) {
$this.trigger('blur');
}
});
};
})(jQuery);
最新文章
- x01.Weiqi.8: 一点改进
- 【python+mysql】在python中调用mysql出问题 ImportError: No module named MySQLdb.constants
- 【转载】shell编程——if语句 if -z -n -f -eq -ne -lt
- ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——菜单模块的实现(二)
- JAVA如何随机生成一个汉字
- Spring计划
- Uva 1220,Hali-Bula 的晚会
- fqrouter让安卓手机登陆facebook成为可能
- 使用python脚本实现基于指定字符串的文本排序
- 带搜索框的下拉框chosen.jQury.js
- MyEclipse — Maven+Spring+Struts+Hibernate 整合 [学习笔记-1]
- UE中使用正则表达式的一些技巧
- height、clientHeight、scrollHeight、offsetHeight区别
- mysql 创建数据库使用默认字符集(备忘)
- hdu 4912 Paths on the tree(lca+馋)
- Spring思维导图(一)
- layer遮罩层 简单的遮罩层
- 使用element-ui遇到的各种小问题
- CF 219D 树形DP
- Selenium自动化测试框架