Javascript:使用 a∨(b∧c∧d) 进行表单验证
Javascript: form validation with a∨(b∧c∧d)
对此有一个简单的答案,而且比我的答案更优雅。我在 html 中有一个登录表单。您可以使用 ID 或 Firstname、Lastname 和 email 登录。在 JS 中,我想验证表单,我想看看 ID 字段是否已填充或其他字段的 all 3。
这是一个事实 table:
Truth table: a∨(b∧c∧d)
HTML:
<form onsubmit="return FormValidation()" name="login" method="POST">
ID: <input type="text" name="id"><br>
<p> or </p>
Firstname: <input type="text" name="first"><br>
Lastname: <input type="text" name="last"><br>
Birthdate: <input type="date" name="birthdate"><br>
</form>
JS:
function FormValidation(){
var id = document.forms["login"]["id"].value;
var firstname = document.forms["login"]["firstname"].value;
var lastname = document.forms["login"]["lastname"].value;
var birthdate = document.forms["login"]["birthdate"].value;
if (id == "" && (firstname == "" && lastname == "" && birthdate =="")) {
alert("Something is missing");
return false;
} else if (id != "" && (firstname == "" && lastname == "" && birthdate =="")) {
alert("Ok");
return true;
} else if (id == "" && (firstname != "" && lastname != "" && birthdate !="")) {
alert("Ok");
return true;
} else if (id != "" && (firstname != "" && lastname != "" && birthdate !="")) {
alert("Ok");
return true;
} else if .....
.....
}
每个错误都有一个 if 语句。
请告诉我一个比这更优雅的方式..
您可能使用 if 语句将其复杂化了。使用逻辑符号很好地映射到 JavaScript - 无需构建真相 table.
var hasId = id != "";
var hasFirstLastAndBirthday = firstname != "" && lastname != "" && birthday != "";
return hasId || hasFirstLastAndBirthday;
对此有一个简单的答案,而且比我的答案更优雅。我在 html 中有一个登录表单。您可以使用 ID 或 Firstname、Lastname 和 email 登录。在 JS 中,我想验证表单,我想看看 ID 字段是否已填充或其他字段的 all 3。
这是一个事实 table: Truth table: a∨(b∧c∧d)
HTML:
<form onsubmit="return FormValidation()" name="login" method="POST">
ID: <input type="text" name="id"><br>
<p> or </p>
Firstname: <input type="text" name="first"><br>
Lastname: <input type="text" name="last"><br>
Birthdate: <input type="date" name="birthdate"><br>
</form>
JS:
function FormValidation(){
var id = document.forms["login"]["id"].value;
var firstname = document.forms["login"]["firstname"].value;
var lastname = document.forms["login"]["lastname"].value;
var birthdate = document.forms["login"]["birthdate"].value;
if (id == "" && (firstname == "" && lastname == "" && birthdate =="")) {
alert("Something is missing");
return false;
} else if (id != "" && (firstname == "" && lastname == "" && birthdate =="")) {
alert("Ok");
return true;
} else if (id == "" && (firstname != "" && lastname != "" && birthdate !="")) {
alert("Ok");
return true;
} else if (id != "" && (firstname != "" && lastname != "" && birthdate !="")) {
alert("Ok");
return true;
} else if .....
.....
}
每个错误都有一个 if 语句。
请告诉我一个比这更优雅的方式..
您可能使用 if 语句将其复杂化了。使用逻辑符号很好地映射到 JavaScript - 无需构建真相 table.
var hasId = id != "";
var hasFirstLastAndBirthday = firstname != "" && lastname != "" && birthday != "";
return hasId || hasFirstLastAndBirthday;