<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表单事件(二)</title>
</head>
<body>
<h3>用户登录</h3>
<form action="admin.php" method="GET" name="login">
<p>
<label for="name">用户: </label>
<input type="text" name="name" id="name">
<span style="color:red" id="name-tips">*</span>
</p>
<p>
<label for="password">密码: </label>
<input type="password" name="password" id="password">
<span style="color:red" id="psw-tips">*</span>
</p>
<button>登录</button>
</form>
<script>
// onsubmit 表单提交事件: 用户提交表单时触发
// onblur: 失去焦点事件: 控件失去焦点时触发
// onfocus: 获取焦点事件: 控件获取焦点时触发
// oninput: 输入框内容发生变化时触发
// 还有一些与事件对应的方法
// submit(): 提交表单,表单元素上调用,脚本提交不需要事件触发
// reset(): 重置表单控件值
// focus(): 设置控件焦点
// 获取表单元素的另一种方式
var form = document.forms['login'];
// console.log(form);
// console.log(form.name.value.length);
// 预设焦点
// form.name.focus()
form.onsubmit = function () {
if (form.name.value.length === 0) {
alert('用户名不能为空');
this.name.focus();
return false;
} else if (form.password.value.length === 0) {
alert('密码不能为空');
this.password.focus();
return false;
}
// confirm()对话框也alert()不同, 多了一个取消按钮,返回布尔值true/false
// if (confirm('确定登录吗?')) {
// return true;
// } else {
// return false;
// }
// 可以简化
return confirm('确定登录吗?');
}
// onblur: 失去焦点事件, 当控件失去焦点时触发,应该作用到控件元素上
var tips1 = document.getElementById('name-tips');
form.name.onblur = function() {
if (this.value.trim().length === 0) {
tips1.innerHTML = '用户名不能为空';
this.focus();
}
}
// oninput事件,在输入框内容发生变化时立即触发,而不像onchange要等到失去焦点再触发
form.name.oninput = function () {
tips1.innerHTML = '';
}
// 密码框的验证也是一样的, 请学员自己完成
</script>
</body>
</html>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号