前端小案例——多看看
前端JS一些小案例
1.搜索栏内默认填充内容,但是鼠标点击搜索框后默认内容消失
用获取焦点的事件来写,聚焦后让标签的默认值变为空即可
拓展,默认填充的内容随机分配,根据用户的大数据的前十个浏览属性匹配相对应的商品名称
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="">
查找你喜爱的商品 :<input type="text" id="d1" value="显卡RTX4090" placeholder="">
</form>
<script>
let inputEle = document.getElementById('d1')// 锁定标签
inputEle.onfocus = function (){ //绑定事件
inputEle.value = '' // 被用户聚焦了,默认值改为空
}
inputEle.onblur = function (){ // 用户点击别的了,默认值 填上
inputEle.value = '下次再来哦'
}
</script>
</body>
</html>
2.前端校验用户名和密码部分规范
比如,设置前端页面的获取用户输入账号和密码时,不能提交空
如果有空,在输入框的右边提醒红色小字,然后如果用户又重新鼠标聚焦到输入框内,把右边红色小字消失掉
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>账号:
<input type="text" id="username">
<span class="errors" style="font-size:10px;color: rgba(220,20,60,0.76)"></span>
</p>
<p>密码:
<input type="password" id="password">
<span class="errors" style=" font-size:10px;color:rgba(220,20,60,0.76) "></span>
</p>
<button id="btn">提交</button>
<script>
//锁定储存按钮标签
let btnEle = document.getElementById('btn')
// 绑定事件
btnEle.onclick = function (){
// 锁定并储存用户输入的标签并拿到数据
let username = document.getElementById('username').value;
let password = document.getElementById('password').value;
//判断用户输入是否为空
if (username.length ===0){
//锁定并存储 输入框 提示标签
let span1Ele = document.getElementsByClassName('errors')[0]
//载入提示
span1Ele.innerText = '账号不能为空'
}
if (password.length ===0){
let span2Ele = document.getElementsByClassName('errors')[1]
span2Ele.innerText = '密码不能为空'
}
}
function func1() {
let inputNameEle = document.getElementById('username')
inputNameEle.onfocus = function () {
let span1Ele = document.getElementsByClassName('errors')[0]
span1Ele.innerText = ''
}
let inputPwdEle = document.getElementById('password')
inputPwdEle.onfocus = function () {
let span1Ele = document.getElementsByClassName('errors')[1]
span1Ele.innerText = ''
}
}
setTimeout(func1,1000)
</script>
</body>
</html>
3.搞一个网址上的报时显示框,右边添加两个按钮,一个控制开始,一个控制结束
拔高:不管用户怎么按开始按钮,停止按钮都能给他停了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页计时器</title>
</head>
<body>
<input type="text" value="" id="d1">
<button id="startBtn">开始</button>
<button id="stopBtn" >停止</button>
<script>
let t
let starBtnEle = document.getElementById('startBtn')
let stopBtnEle = document.getElementById('stopBtn')
let inputEle = document.getElementById('d1')
function showtime() {
let currentTime = new Date()
inputEle.value = currentTime.toLocaleTimeString()
}
starBtnEle.onclick = function () {
if (!t){t = setInterval(showtime,900)}
}
stopBtnEle.onclick = function (){
clearInterval(t)
t = null
}
</script>
</body>
</html>
4.监听事件——前端实时拿数据找后端校验
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>实时监听input输入值变化</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>
</head>
<body>
<input type="text" id="i1">
<script>
$("#i1").on("input", function () {
console.log($(this).val())
})
</script>
</body>
</html>