JavaScript实现Input、Select及Textarea默认字体颜色与交互效果
作者:小括号时间:2026-10-22 03:14:51浏览:404
本文介绍如何利用JavaScript和jQuery实现表单元素的默认字体颜色控制。通过监听焦点事件,使Textarea在获取焦点时清除提示文字并变黑,失去焦点时恢复灰色。同时演示如何设置Select下拉框默认选中项为灰色,选择其他选项后变为黑色。此外,提供jQuery插件方式处理Input文本框的默认值显示与清除逻辑,提升用户体验。
Textarea默认文字颜色与焦点交互处理
对于Textarea元素,需要实现默认文字颜色为灰色,并在用户获取焦点时清除默认提示文字,同时将字体颜色改为黑色;当焦点离开且内容为空时,恢复显示默认灰色提示文字。
<textarea cols="50" rows="5" id="textarea" onfocus="if(value=='获取到元素焦点'){value='';document.getElementById('textarea').style.color='#000'}" onblur="if (value ==''){value='元素焦点消失';document.getElementById('textarea').style.color='#999'}">输入您要输入的内容</textarea>
Select下拉框默认选中项颜色控制
针对Select下拉框,需实现默认选中项的文字颜色为灰色,当用户选择其他选项后,文字颜色变为黑色。此效果可通过JavaScript结合jQuery实现,监听change事件判断当前选中值是否为默认项,从而动态调整颜色。
<script>
var unSelected = "#999";
var selected = "#333";
$(function () {
$("select").css("color", unSelected);
$("option").css("color", selected);
$("select").change(function () {
var selItem = $(this).val();
if (selItem == $(this).find('option:first').val()) {
$(this).css("color", unSelected);
} else {
$(this).css("color", selected);
}
});
})
</script>
Input文本框默认值显示与清除逻辑
对于Input文本框,若存在默认值,则默认以灰色显示。当用户点击输入框获取焦点时,默认值消失,用户输入的字符显示为黑色。可通过jQuery封装插件或事件监听实现该功能,确保默认值在交互时正确显示与清除。
<script type="text/javascript">
$(function() {
//集体调用类型为text的input
$(".form input[text]").each(function(){
$(this).setDefauleValue();
});
//单个调用
$("#key").setDefauleValue();
})
//设置默认值
$.fn.setDefauleValue = function() {
var defauleValue = $(this).val();
$(this).val(defauleValue).css("color","#eee");
return this.each(function() {
$(this).focus(function() {
if ($(this).val() == defauleValue) {
$(this).val("").css("color","#000");//输入值的颜色
}
}).blur(function() {
if ($(this).val() == "") {
$(this).val(defauleValue).css("color","#999");//默认值的颜色
}
});
});
}
</script>
</head>
<body>
<form class="form">
<input type="text" size="30" value="输入账户">
<br>
<input type="text" size="30" value="输入密码">
</form>
<br>
<br>
<br>
<input type="text" size="30" id="key" value="输入手机号">
作者最新文章
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
