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);

最新文章

  1. x01.Weiqi.8: 一点改进
  2. 【python+mysql】在python中调用mysql出问题 ImportError: No module named MySQLdb.constants
  3. 【转载】shell编程——if语句 if -z -n -f -eq -ne -lt
  4. ASP.NET MVC4+EasyUI+EntityFrameWork5权限管理系统——菜单模块的实现(二)
  5. JAVA如何随机生成一个汉字
  6. Spring计划
  7. Uva 1220,Hali-Bula 的晚会
  8. fqrouter让安卓手机登陆facebook成为可能
  9. 使用python脚本实现基于指定字符串的文本排序
  10. 带搜索框的下拉框chosen.jQury.js
  11. MyEclipse — Maven+Spring+Struts+Hibernate 整合 [学习笔记-1]
  12. UE中使用正则表达式的一些技巧
  13. height、clientHeight、scrollHeight、offsetHeight区别
  14. mysql 创建数据库使用默认字符集(备忘)
  15. hdu 4912 Paths on the tree(lca+馋)
  16. Spring思维导图(一)
  17. layer遮罩层 简单的遮罩层
  18. 使用element-ui遇到的各种小问题
  19. CF 219D 树形DP
  20. Selenium自动化测试框架

热门文章

  1. C++PE文件格式解析类(轻松制作自己的PE文件解析器)
  2. Win7如何自定义鼠标右键菜单 添加新建文本文档
  3. 96Boards扩展板 STM32 B96B-F446VE 牛刀小试
  4. java命令行
  5. vue.js+koa2项目实战(四)搭建koa2服务端
  6. vue sync
  7. 又一次认识java(九) ---- 内部类
  8. Build Your Hexo Blog (On Github)
  9. ios 视图的旋转及应用
  10. SpringMvc自动代理