Javascript onsubmit和2个函数错误

javascript onsubmit and 2 functions error

本文关键字:函数 错误 2个 onsubmit Javascript      更新时间:2023-09-26

谁能告诉我出了什么问题?

我正在尝试创建一个基本的登录页面,只有在正确的密码被写入时才打开

<html>
<head>
<script>
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
  {
  alert("First name must be filled out");
  return false;
  }
var x=document.forms["myForm"]["fname2"].value;
if (x==null || x=="")
  {
  alert("password must be filled out");
  return false;
  }
}
function isValid(myNorm){
var password = myNorm.value;
if (password == "hello_me")
{
return true;
}
else 
{alert('Wrong Password')
return false;
}
}
</script>
</head>
<body>
<form name="myForm" action="helloworld.html" onsubmit="return !!(validateForm()& isValid())" method="post">
Login ID: <input type="text" name="fname"> <br />
<br>
Password: <input type="password" name="fname2" > <br />
<br />
<br />
<input type="submit" value="Submit">
<input type="Reset" value="clear">
</form>
</body>
</html>

第二个函数中的密码值是undefined,因为在调用isValid()函数时没有使用任何参数

var password = myNorm.value; //`myNorm` is undefined

var password = document.forms["myForm"]["fname2"].value;

见下面正确的函数

function isValid(myNorm){
 var password = document.forms["myForm"]["fname2"].value;
 if (password == "hello_me"){
   return true;
 } else {
   alert('Wrong Password')
   return false;
  }
}

关于评论的更新答案如果值在函数validateForm()中有效,则在函数return true中有效,见下文

function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
  {
  alert("First name must be filled out");
  return false;
  }
var x=document.forms["myForm"]["fname2"].value;
if (x==null || x=="")
  {
  alert("password must be filled out");
  return false;
  }
    return true; // return true when input value is value
}

小提琴演示

isvalid()中的密码错误警报需要分号。与运算符是&&不,在提交调用中我只是在看代码你观察到了什么?你可以使用ie调试使用F12键。或者使用合适插件的Firefox