这是我需要帮助的! 我的项目需要Age部分的If和else语句! 然后将已经正确验证的人发送到新页面..我目前有一个页面,但这只是我的USB中的内容
还需要解释它是如何验证的
请帮忙
!DOCTYPE html>
<html>
<head>
<script>
function validateForm() {
var x = document.forms["myForm"]["fname"].value;
if (x == null || x == "")
{
alert("Name must be filled out");
return false;
}
var Age = document.forms["myForm"]["Age"].value;
if (Age == null || Age == "") {
alert("Has to be a number between 1 and 150");
return false;
}
var Email = document.forms["myForm"]["Email"].value;
if (Email == null || Email == "") {
alert("Make sure it is the correct Email format");
return false;
}
var myCheck = document.getElementById("check1").checked;
if (myCheck == false) {
alert("Have to tick box to proceed");
return false;
}
}
</script>
</head>
<body>
<form name="myForm" action="file:///G:/Welcome.html"
onsubmit="return validateForm()" method="post">
Name: <input type="text" name="fname">
Age: <input type="text" name="Age">
Email: <input type="text" name="Email">
<br>checkbox: <input type="checkbox" id="check1" name="myCheck"> </br>
<input type="submit" value="click">
</form>
</body>
</html>
答案 0 :(得分:0)
您可以使用年龄检查扩展if子句。
var age = document.forms["myForm"]["Age"].value;
if (age == "" || age < 1 || age > 150) {
// ^^^^^^^^^^^^^^^^^^^^^^^
alert("Has to be a number between 1 and 150");
return false;
}
答案 1 :(得分:0)
我将表单的值解析为数字,然后检查其范围:
var age = Number(document.forms["myForm"]["Age"].value) || 0;
if (age < 1 || age > 150) {
alert("Has to be a number between 1 and 150");
return false;
}
为什么要转换为数字并放置Number(document.forms["myForm"]["Age"].value) || 0
?
原因很简单:假设恶意用户在您的表单中输入值“NaN”。如果您没有进行此项检查,则年龄值将为NaN,并且它会通过您的支票(NaN < 1
为false
而NaN > 150
也为false
。
这样,如果用户在表单中放入“NaN”,则后卫会将其转换为0,警报将触发,函数将返回false。