onsubmit="return check()"问题没反应

onsubmit="return check()"没有反应,提交表框直接到action="postreg.php页面上了,谁帮我解决一下!

<form action="postreg.php" method="post" onsubmit="return check()">
        <div class="user">
            <input type="text" name="username" placeholder="请输入用户名"><span></span>
        </div>
        <div class="mailbox">

            <input type="text" name="usermail" placeholder="请输入你的邮箱"><span></span>
        </div>
        <div class="pass">
            <input type="password" name="password" placeholder="请输入密码"><span></span>
        </div>
        <div class="pass">
            <input type="password" name="password2" placeholder="请再次输入密码"><span></span>
        </div>
        <div class="button">
            <button type="submit">立即注册<span></span></button>
        </div>
        <div class="register">
            <div class="registers"><a href="login.html" >返回登录</a></div>
            <div class="wjmm"><a href="wjmm.html" >忘记密码</a></div>
        </div>
        </form>


<script>
        function check(){
            let username = document.getElementsByName('usermane')[0].value.trim();
            let usermail = document.getElementsByName('usermail')[0].value.trim();
            let password = document.getElementsByName('password')[0].value.trim();
            
            let usernamereg = /^[a-zA-Z0-9]{3,10}$/;
        if(!usernamereg.test(username)) {
            alert('用户名必填.且只能大小定字符和数字构成.长度为3到10个字符.');
        return false;
        }
        
        }
        </script>
阅读 1.9k
2 个回答

我本地试了可以的,不知道是不是浏览器的原因。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <form onsubmit="return check();" >
        <div class="user">
            <input type="text" name="username" placeholder="请输入用户名"><span></span>
        </div>
        <div class="mailbox">

            <input type="text" name="usermail" placeholder="请输入你的邮箱"><span></span>
        </div>
        <div class="pass">
            <input type="password" name="password" placeholder="请输入密码"><span></span>
        </div>
        <div class="pass">
            <input type="password" name="password2" placeholder="请再次输入密码"><span></span>
        </div>
        <button type="submit">立即注册<span></span></button>
    </form>

<script>

function check(){
    let username = document.getElementsByName("username")[0].value.trim();
    let usernamereg = /^[a-zA-Z0-9]{3,10}$/;
    if(!usernamereg.test(username)) {
        alert('用户名必填.且只能大小定字符和数字构成.长度为3到10个字符.');
        return false
    }
}
</script>
</body>
</html>

需要在表单提交时阻止默认事件,不然会默认提交到指定地址

function check(ev){
    ev.preventDefault();
    //...
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题