有人可以告诉我出了什么问题吗?
我正在尝试创建一个基本的登录页面,只有在写入正确的密码时才会打开
<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>
答案 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
}
答案 1 :(得分:0)
警告错误的密码在isvalid()中需要一个分号。 And运算符是&amp;&amp;不是&amp;在提交电话中 我只关注代码 你观察到了什么? 你可以使用ie来调试使用F12键..或者使用合适插件的Firefox