HTML 用户信息收集表单验证 - 姓名、身份证号、体重
以下是使用HTML和JavaScript开发的收集用户信息的文档,该表单对用户输入的姓名、身份证号和体重进行验证,并使用alert窗口显示错误消息。
<!DOCTYPE html>
<html>
<head>
<title>用户信息收集</title>
<script>
function validateForm() {
// 获取表单元素的值
var name = document.getElementById('name').value;
var idNumber = document.getElementById('idNumber').value;
var weight = document.getElementById('weight').value;
// 检查姓名
if (name.length < 2 || name.length > 20) {
alert('姓名必须大于2个字符且少于20个字符');
return false;
}
// 检查身份证号
var idPattern = /^[0-9]{6}[0-9]{8}[0-9]{3}[0-9X]$/;
if (!idPattern.test(idNumber)) {
alert('身份证号格式不正确');
return false;
}
// 计算身份证号校验码
var coefficient = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
var sum = 0;
for (var i = 0; i < 17; i++) {
sum += parseInt(idNumber.charAt(i)) * coefficient[i];
}
var remainder = sum % 11;
var checkCode = '';
if (remainder < 2) {
checkCode = (11 - remainder).toString();
} else {
checkCode = (11 - remainder + 10).toString();
}
if (checkCode !== idNumber.charAt(17)) {
alert('身份证号校验码错误');
return false;
}
// 检查体重
if (weight < 40 || weight > 150) {
alert('体重必须在40kg和150kg之间');
return false;
}
// 表单验证通过
alert('表单验证通过');
return true;
}
</script>
</head>
<body>
<form onsubmit='return validateForm()'>
<label for='name'>姓名:</label>
<input type='text' id='name' name='name' required><br><br>
<label for='idNumber'>身份证号:</label>
<input type='text' id='idNumber' name='idNumber' required><br><br>
<label for='weight'>体重:</label>
<input type='number' id='weight' name='weight' min='40' max='150' required><br><br>
<input type='submit' value='提交'>
</form>
</body>
</html>
该HTML文档包含一个表单,其中包括三个输入字段:姓名、身份证号和体重。表单上的onsubmit事件处理程序会调用validateForm()函数来检查所收集的信息是否正确。如果某个字段的值不符合要求,将使用alert窗口显示相应的错误消息。只有在所有字段的值都有效时,表单才会被提交。
身份证号格式说明
- SSSFFF:6位地址号(0-9)
- YYYYMMRR:8位生日(年月日)
- NNN:3顺序号(0-9)
- C:1位校验码
身份证最后一位校验码算法
- 将身份证号码前17位数分别乘以不同的系数,从第1位到第17位的系数分别为:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2
- 将得到的17个乘积相加。
- 将相加后的和除以11并得到余数。
- 余数可能为 0,1,2,3,4,5,6,7,8,9,10 ,其对应的身份证最后一位校验码为1,0,X,9,8,7,6,5,4,3,2
原文地址: https://www.cveoy.top/t/topic/beb3 著作权归作者所有。请勿转载和采集!