• 让IE下支持Html5的placeholder属性


    HTML5对Web Form做了许多增强,比如input新增的type类型、Form Validation等。

    Placeholder 是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文 字消失。以前要实现这效果都是用JavaScript来控制才能实现 , firefox、google chrome等表示对其支持 , 唯独IE存在违和感啊!

    例如: <input id="t1" type="text" placeholder="请输入文字" />

    介绍一个超强的让IE下支持placeholder的属性插件,同时也兼容其他不支持placeholder的浏览器,代码如下:

    代码如下:
    $(document).ready(function(){
    var doc=document,
    inputs=doc.getElementsByTagName('input'),
    supportPlaceholder='placeholder'in doc.createElement('input'),
    placeholder=function(input){
    var text=input.getAttribute('placeholder'),
    defaultValue=input.defaultValue;
    if(defaultValue==''){
    input.value=text
    }
    input.onfocus=function(){
    if(input.value===text)
    {
    this.value=''
    }
    };
    input.onblur=function(){
    if(input.value===''){
    this.value=text
    }
    }
    };
    if(!supportPlaceholder){
    for(var i=0,len=inputs.length;i<len;i++){
    var input=inputs[i],
    text=input.getAttribute('placeholder');
    if(input.type==='text'&&text){
    placeholder(input)
    }
    }
    }
    });

    直接把代码复制下来,保存成一个js文件引用即可,不用再做任何处理,超级便利!

    ex : 这样做的确能让IE的Input显示placeholder属性,但是如果页面上只有一个input还好,如果是多个input,如果出现input没有 填入任何值的话,那么它的空input会自动将placeholder的值填进value里面,从而发生错误.例如:

    代码如下:
    <input type="text" placeholder="输入商品编码" name="goodscode" id="goodscode" value="123" />
    <input type="text" placeholder="输入商品名称" name="goodsname" id="goodsname" value="输入商品名称" />

    解决办法就是在后台自己判断啦 , 也许能在上面的js文件里解决 , 以后再研究啦~!

  • 相关阅读:
    Android view显示在软键盘上方
    ListView子项点击无反应的解决办法
    adb for mac
    Android文件的流操作工具类
    Linux之间配置SSH互信(SSH免密码登录)
    最简单的Linux虚拟机磁盘扩容方法
    Grunt + Bower—前端构建利器
    Microsoft Office 2016 简体中文 Vol 版镜像下载(Pro Plus、Visio、Project 下载)
    如何在windows下安装GIT
    如何在Crystal框架项目中内置启动MetaQ服务?
  • 原文地址:https://www.cnblogs.com/tnnyang/p/4159497.html
Copyright © 2020-2023  润新知