其实除了支持placeholder 的浏览器,其他用js 或jq实现的都不叫placeholder 效果,只能算上是获取焦点,或失去焦点时的一个placeholder 没有出生时就已经存在效果
很多人用jq写,笔者,用的js写的
在这我觉得用js也好,jq也好,实现这个不仅仅是一个焦点得失的问题,更应该得到扩展
比如说,有value值时,我们给placeholder 组件传一个默认值叫 ‘请输入 ’ 如果value 为空 则显示请输入 如果有value 值 则显示value值, 并不是清空,应该是修改
这个组件使用了不需要再单独给value 用jq 或js赋值,这才叫可以
我的代码
var kpUnit = {} kpUnit.placeholder = function(id,defText){ var oInput = Q(id)[0];/* 这是自定义的写的 组件就不copy出来了,这个 这里就是 documet.getElementById(id); 因为我的Q是一个方法 所以传的是#id 传值就不多说了,一看就明白*/ var value = defText || oInput.value oInput.style.color="#999" if(oInput.value==‘‘){ this.value=value; } oInput.onfocus=function(){ if(this.value==value){ this.value=‘‘; this.style.color="#333" } }; oInput.onblur=function(){ if(this.value==‘‘){ this.value=value; this.style.color="#999" } } } kpUnit.placeholder(‘#id‘,‘请输入‘);
用着还好,最起码不用再赋值了,功能算是满足了
时间: 2024-10-06 00:16:17