placeholder一点tip
作者:kun10 发布时间:October 17, 2010 分类:JavaScript
周末抽空做了做chrome extension
在做option.html的时候,使用了input标签来做插件的参数的输入设置,出于新技术的一个尝鲜,给input标签加了一个placeholder属性。
像这样的:
<input id="theIp" type="text" placeholder="请填上服务器的ip" value=""/>
之后我写了一个按钮并运用localStorage来存储这个input的值,然后企图在页面再次载入的时候在input里面显示这个值。
经过了测试,页面在载入的时候的确利用js重写了这个input的value属性,用console查看就是这样的
<input id="theIp" type="text" placeholder="请填上服务器的ip" value="11.11.11.11"/>
但是此时浏览器里面的input依然显示着placeholder的值。照理说value填入了值placeholder就应该没有了。
很费解,找了半天原因,最后点击了input,发现value出来了。
于是在页面载入的时候添加了一段代码
theinput.focus();
theinput.blur();
这样子页面载入后用js修改input的value,placeholder就能除去。
纠错
-----update最新修改 2010/10/17-----
造成这样的原因是因为当时我使用了setAttribute来设定input的value属性,使用了这样的方式,就得用以上的技巧来消除placeholder的影响。如果直接对input.value赋值,如果有值,placeholder自动会消失。这也说明value的设定上面两种方式还是有差异的。
--------------------------------