我正在创建一个表单,要求提供电子邮件和密码并对其进行验证。如果它有任何错误,它会弹出在同一行上。下面是我的javascript代码。当我填写表单并点击submit时,值被重置。此外,我在控制台中没有看到任何东西。我尝试使用随机代码console.log('hanee')来测试我的代码,但在console选项卡中没有生成任何内容。谁能告诉我这里有什么问题吗?
另外,这是我的登录表单的链接:http://www2.cs.uregina.ca/~hsb833/215a/login.html
document.getElementById("login-form").addEventListener("submit",validateLogin,false);
function validateLogin(event){
var elements = event.currentTarget;
var emailValue = elements[0].value;
var passValue = elements[1].value;
checkEmail(emailValue);
checkPass(passValue);
}
function checkEmail(emailValue){
var regex_email = /^[/w]+@[a-zA-Z]+?\.[a-zA-Z]{2,3}$/;
var index = emailValue.search(regex_email);
var errorEmail = document.getElementById("errorEmail");
var valid = true;
console.log('Hanee');
if(index != 0){
errorEmail.style.display = 'inline';
}
}
function checkPass(passValue){
var password = document.getElementById("password");
var regex_pass = /[\w]+\S/;
var index = passValue.search(regex_pass);
if(passValue.length < 6){
console.log('password is invalid. Minimum length is 6');
errorPassLen.style.display = 'inline';
}
if(index != 0){
console.log('password is invalid. Please make sure there is no spaces in between');
errorPassFormat.style.display = 'inline';
}
}
2条答案
按热度按时间axr492tv1#
form
默认情况下,在提交后刷新。要防止这种情况,请使用event.preventDefault();
在你的validateLogin
q5lcpyga2#
什么时候
submit
事件,所有值都将发送到服务器并重置。如果要防止这种情况,请使用event.preventDefault();
事件处理函数内部validateLogin(event)
. 然后,这些值将不会被重置!不过,如果您希望您的值在提交后为空,请尝试下面的方法。