为什么用border无法实现效果,用borderColor能实现效果?
来源:4-3 编程练习
qq_鸭绿桥第一帅哥_0
2019-02-10 11:32:42
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>习题</title>
</head>
<body>
<input type="text" value=""><span></span>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
//此处写代码
$('input').focus(function(){
$('span').text('请输入用户名');
$(this).css('border','blue');
})
$('input').blur(function(){
if ($('span').text('请输入用户名')=="")
{
$('span').text('用户名不能为空');
$('input').css('border','red');
}
else
{
$('span').text('');
$('input').css({'border':'green'});
}
})
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>习题</title>
</head>
<body>
<input type="text" value=""><span></span>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script>
//此处写代码
$('input').focus(function(){
// $('this').css('borderColor','blue');
$('span').text('请输入用户名');
}).blur(function(){
if ($(this).val()=="") {
$(this).css('borderColor','red');
$('span').text('用户名不能为空');
}else
{
$(this).css('borderColor','green');
$('span').text('');
}
})
</script>
</body>
</html>2回答
同学你好,代码中有以下几个问题:
1、因为要改变的是边框的颜色,而borderColor就单指的是边框颜色,后面只接一个颜色值,所以改成borderColor效果就能实现,而border后面是要跟三个值,所以只写一个颜色效果是不实现的,如果想使用border,可以参考下图:

2、通过jq判断input里面有没有内容,条件应该是input里面的value值是否为空,参考下图:

this指向的是当前活动的对象input标签,jq中获取input的value值是通过.val()来获取的。
3、input标签是自带获得焦点的样式的,如果不需要的话,可以通过设置outline:none来去掉,参考下图:

自己测试一下,如果帮助到了你,欢迎采纳。
祝学习愉快!
qq_鸭绿桥第一帅哥_0
提问者
2019-02-10
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>习题</title> </head> <body> <input type="text" value=""><span></span> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script> <script> //此处写代码 </script> </body> </html>
为什么这段代码没有给input设置获得焦点后边框为蓝色,但是却能实现获得焦点后边框为蓝色?
相似问题