placeholder的兼容性探索之路

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>placeholder</title>
    <style type="text/css">
    .label{position: relative; display: inline-block; *zoom:1; *display: inline;
        *vertical-align: middle;}
    .label label{ position: absolute; left:0px; top:0; font-size: 12px;cursor: text; text-indent: 5px;}
    .label input{ padding: 9px 5px; height: 14px; line-height: normal; border: 1px solid #ccc; font-size: 14px;}
    </style>
</head>
<body>
请输入用户名:
<div class="label">
    <label for="user">请输入用户名</label>
    <input type="text" id="user" />
</div>
</body>
</html>
<script type="text/javascript">
var aLabel=document.getElementsByTagName("label")[0];
var aInput=document.getElementsByTagName("input")[0];
aLabel.style.lineHeight=aLabel.style.height=aInput.offsetHeight+"px";
if (aInput.value.length!=0){
    aLabel.style.display="none"
}else{
    aLabel.style.display="block"
};
aInput.onfocus=function(){
    aLabel.style.display="none";
}
aInput.onblur=function(){
    if (aInput.value.length!=0){
        aLabel.style.display="none"
    }else{
        aLabel.style.display="block";
    };

}

</script>

方法二

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>placeholder</title>
</head>
<body>
    <input type="text" placeholder="请输入用户名" />
</body>
</html>
<script>
function placeholder(opts){
if("placeholder" in document.createElement(‘input‘)){
    return;
    }else{
        this.obj=opts.obj;
        this.init();
        this.focus();
        this.blur();
    }
}
placeholder.prototype.init= function(){
    if (this.obj.getAttribute("placeholder") && this.obj.value.length==0){
        this.obj.value=this.obj.getAttribute("placeholder");
    }
};
placeholder.prototype.focus=function(){
    var _this=this;
    this.obj.onfocus=function(){
        if (_this.obj.value==_this.obj.getAttribute("placeholder")){
            _this.obj.value="";
        };
    }
};
placeholder.prototype.blur=function(){
    var _this=this;
    this.obj.onblur=function(){
        if (_this.obj.value.length==0){
            _this.obj.value=_this.obj.getAttribute("placeholder");
        };
    }
};
var aInput=document.getElementsByTagName("input")[0];
new placeholder({"obj":aInput});
</script>

方法三,

背景图片,限制太多,代码就不贴上来了

时间: 2024-10-01 00:29:08

placeholder的兼容性探索之路的相关文章

解决HTML5中placeholder属性兼容性的JQuery插件

//调用方法 $(function () {   $(".pHolder").jason(); }); //HTML代码 <input type="text" class="pHolder" placeholder="请输入姓名" /> //jquery插件 ($.fn.jason = function(a) {    var b = {        focus: "black",      

对于IE 10 以下版本placeholder的兼容性解决方案

<!-- 对于IE 10 以下版本placeholder的兼容性调整 --> <!--[if lt IE 10]> <script> $(function(){ $("input[type!='password'],textarea").bind({ "focus":function(){ var placeholderVal = $(this).attr("placeholder"); var realVal

让Placeholder在IE中燥起来

网上有好多关于这方面解决兼容性问题的文章,很多招式,学会这一招,让你轻松搞定Placeholder的兼容性,叫我好人,拿走,不谢.... placeholder属性是HTML5 中为input添加的.在input上提供一个占位符,文字形式展示输入字段预期值的提示信息(hint),该字段会在输入为空时显示. 如 <input type="text" id="Title" class="so-input-d w270" placeholder=

placeholder不兼容 IE10 以下版本的解决方法

对于密码输入框placeholder的兼容问题: HTML代码: <input type="password" id="loginPassword" placeholder="密码(6-16位字母数字)" class="width270"> <input type="text" passwordMask="true" placeholder="密码(6-16位

跨浏览器实现placeholder效果的jQuery插件

曾经遇到这样一个问题,处理IE8密码框placeholder属性兼容性.几经周折,这个方案是可以解决问题的. 1.jsp页面引入js插件 <script type="text/javascript" src="<%=basePath%>/login.js" ></script> 2.页面初始化代码 <script type="text/javascript"> //input提示信息 效果插件 针对

input提示字在有焦点消失或输入改变时消失

一:获取焦点时 提示字消失 <input type="text" name="textfield" value="这里是提示内容" onclick="if(value==defaultValue){value='';this.style.color='#000'}" onBlur="if(!value){value=defaultValue;this.style.color='#999'}" />

placeholder 属性的兼容性

placeholder是html5新增的一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点(或输入内容)时,提示文字消失. 但是在不支持html5的低版本的浏览器中,placeholder属性是无效的,例如ie9及以下的ie浏览器不兼容这个属性.下面介绍placeholder兼容性的处理 在页面添加如下脚本 $(function() {   // 如果不支持placeholder,用jQuery来完成   if(!isSupport

placeholder兼容性问题以及用label代替placeholder

什么是placeholder? 答:HTML5中的一个新属性,用于表单元素中,规定可描述输入字段预期值的简短的提示信息,也就是表单元素中的预留文本.适用于下面的 input 类型:text.search.url.tel.email 和 password,还适用于textarea元素. placeholder有哪些兼容性问题? 答:1.placeholder在IE9及以前的浏览器中不能被支持 2.在chrome和Firefox中,当input框获取焦点时,placeholder的文字依然在,只有在

解决&#39;placeholder&#39;针对IE的兼容性问题

if (navigator.userAgent.indexOf("MSIE")>0) {            $("input[placeholder]").each(function(){                $(this).val((($(this).val()=="")?$(this).attr("placeholder"):"")).blur(function(){