如何更改文本区域的颜色's文本,具体取决于它是否为占位符
How can I change the colour of a textarea's text depending on whether it is the placeholder or not?
我基本上想使用JavaScript重新创建HTML5"占位符"属性,以便它与旧浏览器兼容。
我使用的是OnFocus和OnBlur的组合,这很容易,我用下面的代码做到了这一点;
<textarea onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;">Placeholder text</textarea>
占位符文本将为浅灰色(#CCC),然后当文本区域聚焦时,它将变为深灰色(#333)。这在CSS中没有问题,但是,如果文本区域的内容与原始占位符不同,我希望在不聚焦时颜色保持为深灰色。
如果我的解释很差,那么这里有一个(稍微)更好的解释;
页面加载--->textarea占位符=#CCC---->用户关注textarea---->textarea内容变为#333---->用户释放焦点--->除非内容已更改,否则内容应改回#CCC,在这种情况下应保持#333-
大胆的一点是我需要帮助的!
谢谢!:D
编辑:占位符在焦点上消失不是问题,不需要"修复"
http://jsfiddle.net/DszSR/
textarea {
color: #ccc;
}
<textarea
onfocus="if(this.value==this.defaultValue) this.value=''; this.style.color = '#333';"
onblur="if(this.value=='') this.value=this.defaultValue; this.style.color = '#ccc';">Placeholder text</textarea>
在使用CSS或JS加载页面时,您仍然需要将文本颜色设置为#CCC(如果它聚焦,我的代码会覆盖该设置,只有在需要时才会将其恢复为模糊)
<textarea onfocus="if(this.value==this.defaultValue)this.value='';this.style.color='#333'" onblur="if(this.value=='') {this.value=this.defaultValue;this.style.color='#CCC'}">Placeholder text</textarea>
相关文章:
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- jquery切换取决于文本框的值
- 如何更改文本区域的颜色's文本,具体取决于它是否为占位符
- 填充文本框取决于php中的下拉选择
- 使用 javascript 在 DOM 中隐藏 DIV 中的文本,具体取决于另一个 DIV 中的文本
- If条件,取决于类是哪个文本
- 使用Javascript隐藏/取消隐藏带有文本输入的表行,具体取决于所选的下拉选项
- 启用/禁用按钮,具体取决于文本框中的输入是否在选择框中
- 动态创建多个文本框取决于最小字符数在以前的文本框/ javascript/asp
- AngularJS通过文本输入来过滤对象数组,这取决于所选择的select选项
- 文本框的可见性取决于组合框的值
- 设置自动高度,取决于文本区域中有多少列,但显然它增加了空白空间
- 将文本向左对齐&圆的右侧取决于数据
- CSS 类取决于列表项文本长度
- 我想设置文本框的最大长度,这取决于用户对上一个文本框的回答
- 如何验证文本框取决于在javascript中打开的输入
- 启用/禁用文本框取决于checkbox - javascript
- JQuery改变TR背景颜色取决于当前选择的文本输入