html中,placeholder作为input的一个属性,起到了在输入框中占位并提示的作用。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

但是有一些浏览器,如chrome,当鼠标点击输入框时,placeholder的值不消失,只有输入数据才消失,会使前端用户体验大打折扣。

我们要实现的效果:

点击前

解决默写浏览器中点击input输入框时,placeholder的值不消失的方法 随笔 第1张

点击后

解决默写浏览器中点击input输入框时,placeholder的值不消失的方法 随笔 第2张

关键是js代码:

$(function(){
    var text;  // 全局变量用于保存文本框的内容
    $("input").focus(function() {
        text = $(this).attr("placeholder");
		$(this).attr("placeholder","");
    }).blur(function() {
        $(this).attr("placeholder",text);
    });
})

  

 

完整实现代码test.html

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

<div class="box">
    <span>解决默写浏览器中点击input输入框时,placeholder的值不消失的方法</span>
    <div class="content">
		<input type="text" name="name" placeholder="请输入姓名"/>
		<input type="text" name="sex" placeholder="请输入性别"/>
		<input type="text" name="date" placeholder="请输入日期"/>
    </div>   
</div>

<style>
div.box{width:300px;padding:20px;margin:20px;border:4px dashed #ccc;}
div.box span{color:#999;font-style:italic;}
div.content{width:250px;margin:10px 0;padding:20px;border:2px solid #ff6666;}
input[type='text']{width:200px;height:35px;padding:5px 10px;margin:5px 0;border:1px solid #ff9966;}
</style>

<script>
$(function(){
    var text;  // 全局变量用于保存文本框的内容
    $("input:text").focus(function() {
        text = $(this).attr("placeholder");
		$(this).attr("placeholder","");
    }).blur(function() {
        $(this).attr("placeholder",text);
    });
})
</script>

  

 

当然还有一个最简单的实现方法,效果同上

就是在DOM中写死 (但是不建议这样,因为这样做的耦合性太高了,而且当输入框很多的时候,就要写很多个啊)

<input type="text" name="name" placeholder="请输入" onfocus="this.placeholder=''" onblur="this.placeholder='请输入'"/>

  

点击前

解决默写浏览器中点击input输入框时,placeholder的值不消失的方法 随笔 第3张

点击后

解决默写浏览器中点击input输入框时,placeholder的值不消失的方法 随笔 第4张

 

 

 

,

但是有一些浏览器,如chrome,当鼠标点击输入框时,placeholder的值不消失,只有输入数据才消失,会使前端用户体验大打折扣。

我们要实现的效果:

点击前

解决默写浏览器中点击input输入框时,placeholder的值不消失的方法 随笔 第5张

点击后

解决默写浏览器中点击input输入框时,placeholder的值不消失的方法 随笔 第6张

关键是js代码:

$(function(){
    var text;  // 全局变量用于保存文本框的内容
    $("input").focus(function() {
        text = $(this).attr("placeholder");
		$(this).attr("placeholder","");
    }).blur(function() {
        $(this).attr("placeholder",text);
    });
})

  

 

完整实现代码test.html

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

<div class="box">
    <span>解决默写浏览器中点击input输入框时,placeholder的值不消失的方法</span>
    <div class="content">
		<input type="text" name="name" placeholder="请输入姓名"/>
		<input type="text" name="sex" placeholder="请输入性别"/>
		<input type="text" name="date" placeholder="请输入日期"/>
    </div>   
</div>

<style>
div.box{width:300px;padding:20px;margin:20px;border:4px dashed #ccc;}
div.box span{color:#999;font-style:italic;}
div.content{width:250px;margin:10px 0;padding:20px;border:2px solid #ff6666;}
input[type='text']{width:200px;height:35px;padding:5px 10px;margin:5px 0;border:1px solid #ff9966;}
</style>

<script>
$(function(){
    var text;  // 全局变量用于保存文本框的内容
    $("input:text").focus(function() {
        text = $(this).attr("placeholder");
		$(this).attr("placeholder","");
    }).blur(function() {
        $(this).attr("placeholder",text);
    });
})
</script>

  

 

当然还有一个最简单的实现方法,效果同上

就是在DOM中写死 (但是不建议这样,因为这样做的耦合性太高了,而且当输入框很多的时候,就要写很多个啊)

<input type="text" name="name" placeholder="请输入" onfocus="this.placeholder=''" onblur="this.placeholder='请输入'"/>

  

点击前

解决默写浏览器中点击input输入框时,placeholder的值不消失的方法 随笔 第7张

点击后

解决默写浏览器中点击input输入框时,placeholder的值不消失的方法 随笔 第8张

 

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄