当我点击submit时,表单中的输入被重置我还尝试使用console.log()测试我的代码是否正确,但控制台中没有显示任何内容

bgtovc5b  于 2021-09-29  发布在  Java
关注(0)|答案(2)|浏览(339)

我正在创建一个表单,要求提供电子邮件和密码并对其进行验证。如果它有任何错误,它会弹出在同一行上。下面是我的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';

    }

}
axr492tv

axr492tv1#

form 默认情况下,在提交后刷新。要防止这种情况,请使用 event.preventDefault(); 在你的 validateLogin

q5lcpyga

q5lcpyga2#

什么时候 submit 事件,所有值都将发送到服务器并重置。如果要防止这种情况,请使用 event.preventDefault(); 事件处理函数内部 validateLogin(event) . 然后,这些值将不会被重置!
不过,如果您希望您的值在提交后为空,请尝试下面的方法。

elements.forEach(e => e.value = '');

相关问题