我想在JavaScript中创建一个登录页面,这是错误的代码。我想要的是,当我输入错误的电子邮件地址时,它应该在我将其留空时显示警告,然后显示警报。
function check(form) {
if (form.email.value == "id@gmail.com") {
alert("correct username")
} else if (form.email.value == "") {
alert("blank username")
}
var email = document.getElementById('email');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
} else if (form.pswrd.value == "123") {
alert("correct details")
} else if (form.pswrd.value == "") {
alert("blank password")
}
}

<h1>Login </h1>
<form name="login">
Username <input type="text" name="email"/>
Password <input type="password" name="pswrd"/>
<input type="button" onclick="check(this.form)" value="Login"/>
<input type="reset" value="reset"/>
</form>
&#13;
答案 0 :(得分:1)
<强>错误:强>
<script>
标记。它们无效。id="email"
提供input
。所以这不起作用。else
部分以进行电子邮件验证。password
支票与email
支票if...else
区分开。工作代码段
function check(form) {
if (form.email.value == "id@gmail.com") {
alert("correct username")
} else if (form.email.value == "") {
alert("blank username")
} else if (form.email.value != "") {
var email = document.getElementById('email');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}
if (form.pswrd.value == "123") {
alert("correct details")
} else if (form.pswrd.value == "") {
alert("blank password")
}
}
<h1>Login </h1>
<form name="login">
Username <input type="text" name="email" id="email" />
Password <input type="password" name="pswrd"/>
<input type="button" onclick="check(this.form)" value="Login" />
<input type="reset" value="reset"/>
</form>