利用原生js修改input的placeholder的默认字体颜色

昨晚有朋友求助,碰到一个需求,需要修改input,第一个需求是鼠标点击input,提示字不消失,但是原input里面写的是value = "提示字样",我让他将value改为placeholder之后解决了鼠标点击输入框提示字消失的问题;他们第二个需求是:鼠标点击提示字不消失并且该字体需要变颜色,最可气他们工程师还将js写进了input标签里(个人在这里十分不赞同这种做法,不利于维护,而且看起来很乱)。

  

复制代码
1 <!doctype html>
2 <html lang="en">
3  <head>
4   <title>原代码</title>
5  </head>
6  <body>
7         <input type="text" class="form-control" id="inputEmail3" name="textfield" value="联系人" onfocus="if (value =='联系人'){value =''}" onblur="if (value ==''){this.value ='联系人';this.style.color='#000';}" />
8  </body>
9 </html>
复制代码

 

  由于之前没有碰到过这种需求,所以查阅了资料,做了如下的更改:

复制代码
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>修改后的代码</title>
  <style type="text/css">
            #inputEmail3.change::-webkit-input-placeholder {
                    color: red;
            }
            #inputEmail3.change::-moz-placeholder {
                    color: red;
            }
       #inputEmail3.change::-ms-input-placeholder {
                    color: red;
            }
</style> </head> <body> <input type="text" class="form-control" id="inputEmail3" name="textfield" placeholder="联系人" onfocus="this.setAttribute('class', 'form-control change')" onblur="this.setAttribute('class', 'form-control')"/> </body> </html>
复制代码

注:IE不支持placeholder属性,故如需要在IE上兼容,需要先解决兼容问题。这里有一些其他作者方法仅供参考:http://www.cnblogs.com/yjzhu/p/4398835.html

最后。建议大家如果碰到这种需求还是将js,css,html放在各自的文件里,这样有助于内容,样式,功能的分离,有助于网站维护。


修改后:



转载来自:https://www.cnblogs.com/yshtou/p/6069268.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值