javascript onsubmit和2个函数错误

时间:2014-06-27 04:52:37

标签: javascript function validation onsubmit

有人可以告诉我出了什么问题吗?

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

<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>

2 个答案:

答案 0 :(得分:0)

第二个函数中的密码值为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
}

FIDDLE DEMO

答案 1 :(得分:0)

警告错误的密码在isvalid()中需要一个分号。 And运算符是&amp;&amp;不是&amp;在提交电话中 我只关注代码 你观察到了什么? 你可以使用ie来调试使用F12键..或者使用合适插件的Firefox