如果函数中的语句不起作用
If statements in functions not working
由于某些未知原因,checkID 函数中的 if 语句已停止工作,并且无论输入什么输入都只显示 'OK'。我不确定我做错了什么,但有人可以看看我的代码。目前代码似乎只是 运行 函数中的最后一个 if 语句,并且只是最后一条消息 "Ok".
这是我的 HTML:
function begin() {
var Name = document.forms["Cars"]["Name"].value;
var NameID = document.forms["Cars"]["NameID"].value;
var IDName = "";
var PersonID = "";
var checklength = Name.length;
CheckName();
console.log(checklength, checklength < 100)
var checkIDlength = NameID.length;
checkID();
console.log(checkIDlength, checkIDlength < 100)
return false;
function CheckName() {
if (checklength > 0 && checklength < 21) {
IDName = "Ok"
} else {
IDName = "Invalid Name Length";
}
document.getElementById('IDName').innerHTML = IDName;
return false;
}
function checkID() {
if (checkIDlength != 6) {
PersonID = "Invalid ID Length"
}
document.getElementById('PersonID').innerHTML = PersonID
if (NameID.indexOf('BR') === 0) {} else {
PersonID = "Invalid ID Type"
document.getElementById('PersonID').innerHTML = PersonID
}
if (isNaN(NameID.Length != 2)) {
PersonID = "The Last 2 Digits must be numeric";
} else {
PersonID = "OK"
document.getElementById('PersonID').innerHTML = PersonID
}
}
}
<!DOCTYPE html>
<html>
<body>
<form name="Cars">
<h1>Car Sales</h1>
<p>Enter Name</p>
<input type="text" style="text-transform: uppercase" name="Name"><br>
<p id="IDName"></p>
<p>Enter ID</p>
<input type="text" name="NameID"><br>
<p id="PersonID"></p>
<br>
<button onclick="return begin()">Calculate</button>
</form>
</body>
看起来我已经通过在你的 IDCheck 函数的 if 语句中添加一些 return false 来完成这个工作 我正在使用 "BR1231" 作为我的测试用例,我不确定是否这是 100% 有效的,但这是我的代码:
function begin() {
var Name = document.forms["Cars"]["Name"].value;
var NameID = document.forms["Cars"]["NameID"].value;
var IDName = "";
var PersonID = "";
var checklength = Name.length;
CheckName();
console.log(checklength, checklength < 100)
var checkIDlength = NameID.length;
checkID();
console.log(checkIDlength, checkIDlength < 100)
return false;
function CheckName(){
if (checklength >0 && checklength <21)
{
IDName = "Ok"
}
else{
IDName = "Invalid Name Length";
}
document.getElementById('IDName').innerHTML = IDName;
return false;
}
function checkID(){
if (checkIDlength !=6)
{
PersonID = "Invalid ID Length"
document.getElementById('PersonID').innerHTML = PersonID
return false;
}
if (NameID.indexOf('BR') === 0) {
}
else {
PersonID = "Invalid ID Type"
document.getElementById('PersonID').innerHTML = PersonID
return false;
}
if (isNaN(NameID.Length !=2))
{
PersonID = "The Last 2 Digits must be numeric";
return false;
}
else{
PersonID = "OK"
document.getElementById('PersonID').innerHTML = PersonID
}
}
}
由于某些未知原因,checkID 函数中的 if 语句已停止工作,并且无论输入什么输入都只显示 'OK'。我不确定我做错了什么,但有人可以看看我的代码。目前代码似乎只是 运行 函数中的最后一个 if 语句,并且只是最后一条消息 "Ok".
这是我的 HTML:
function begin() {
var Name = document.forms["Cars"]["Name"].value;
var NameID = document.forms["Cars"]["NameID"].value;
var IDName = "";
var PersonID = "";
var checklength = Name.length;
CheckName();
console.log(checklength, checklength < 100)
var checkIDlength = NameID.length;
checkID();
console.log(checkIDlength, checkIDlength < 100)
return false;
function CheckName() {
if (checklength > 0 && checklength < 21) {
IDName = "Ok"
} else {
IDName = "Invalid Name Length";
}
document.getElementById('IDName').innerHTML = IDName;
return false;
}
function checkID() {
if (checkIDlength != 6) {
PersonID = "Invalid ID Length"
}
document.getElementById('PersonID').innerHTML = PersonID
if (NameID.indexOf('BR') === 0) {} else {
PersonID = "Invalid ID Type"
document.getElementById('PersonID').innerHTML = PersonID
}
if (isNaN(NameID.Length != 2)) {
PersonID = "The Last 2 Digits must be numeric";
} else {
PersonID = "OK"
document.getElementById('PersonID').innerHTML = PersonID
}
}
}
<!DOCTYPE html>
<html>
<body>
<form name="Cars">
<h1>Car Sales</h1>
<p>Enter Name</p>
<input type="text" style="text-transform: uppercase" name="Name"><br>
<p id="IDName"></p>
<p>Enter ID</p>
<input type="text" name="NameID"><br>
<p id="PersonID"></p>
<br>
<button onclick="return begin()">Calculate</button>
</form>
</body>
看起来我已经通过在你的 IDCheck 函数的 if 语句中添加一些 return false 来完成这个工作 我正在使用 "BR1231" 作为我的测试用例,我不确定是否这是 100% 有效的,但这是我的代码:
function begin() {
var Name = document.forms["Cars"]["Name"].value;
var NameID = document.forms["Cars"]["NameID"].value;
var IDName = "";
var PersonID = "";
var checklength = Name.length;
CheckName();
console.log(checklength, checklength < 100)
var checkIDlength = NameID.length;
checkID();
console.log(checkIDlength, checkIDlength < 100)
return false;
function CheckName(){
if (checklength >0 && checklength <21)
{
IDName = "Ok"
}
else{
IDName = "Invalid Name Length";
}
document.getElementById('IDName').innerHTML = IDName;
return false;
}
function checkID(){
if (checkIDlength !=6)
{
PersonID = "Invalid ID Length"
document.getElementById('PersonID').innerHTML = PersonID
return false;
}
if (NameID.indexOf('BR') === 0) {
}
else {
PersonID = "Invalid ID Type"
document.getElementById('PersonID').innerHTML = PersonID
return false;
}
if (isNaN(NameID.Length !=2))
{
PersonID = "The Last 2 Digits must be numeric";
return false;
}
else{
PersonID = "OK"
document.getElementById('PersonID').innerHTML = PersonID
}
}
}