javascript - 使用 Javascript 阻止表单操作发生

标签 javascript php jquery html

如何使表单 action="connect.php"在我的函数中停止?我已经这样做了,如果输入错误,那么它会返回一个错误;但是,如果没有返回错误,那么会发生action =“connect.php”,但我不知道如何使action=如果出现错误,则会发生“connect.php”。我怎样才能使它停止,并且不转到 connect.php?

html:

<form action="connect.php" method="get" name="registerForm">
            <h3>Not a member yet? Sign Up!</h3>
            <p>Username:</p><input type="text" name="name" id="registerinput_username">
                <div id="usernamereq2"><p>Field is required.</p><img src="ximg.png" alt="x"></div>
            <p>Email:</p><input type="text" name="email" id="registerinput_email">
                <div id="emailreq"><p>Field is required.</p><img src="ximg.png" alt="x"></div>
            <p>A password will be e-mailed to you.</p>
            <input type="submit" name="submit" value="Register" id="registersubmit">
</form>

javascript 和 jquery:

$("#registersubmit").click(function(){
        if($("#registerinput_username").val() == "" || $("#registerinput_email").val() == "")
        {
            if($("#registerinput_username").val() == "")
            {
                $("#usernamereq2").css({
                opacity:'1'
                });

            }
            if($("#registerinput_email").val() == "")
            {
                $("#emailreq").css({
                opacity:'1'
                });
            }
        }
        if($("#registerinput_username").val() != "")
        {
            $("#usernamereq2").css({
            opacity:'0'
            });
        }
        if($("#registerinput_email").val() != "")
        {
            $("#emailreq").css({
            opacity:'0'
            });
            checkContinue();
        }
        if($("#registerinput_email").val() != "" && $("#registerinput_username").val() != "")
        {   
            validateFormRegister();
        }
    });

function validateFormRegister()
    {
        var email=document.forms["registerForm"]["email"].value;
        var atpos=email.indexOf("@");
        var dotpos=email.lastIndexOf(".");
        var name=document.forms["registerForm"]["name"].value;
        var x=name.length;
            if(atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length)
                {
                alert("Email is invalid.");
                }
            if(x<5)
                {
                alert("Username is too short! Must be at least 5 characters.");
                }
    }

最佳答案

您可以使用 preventDefault() 来阻止默认事件的发生:

$("#registersubmit").click(function(e){
    e.preventDefault();

验证完成后,您可以调用 .submit() 提交表单。

<!-- add id attribute t form -->
<form action="connect.php" method="get" id="registerForm" name="registerForm">

// add submit() to actually submit form
$("#target").submit();

关于javascript - 使用 Javascript 阻止表单操作发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22775470/

相关文章:

jquery - 在 jQuery ajax 成功回调中创建时弹出窗口被阻止

javascript - Facebook 中奇怪的 JSONP 响应

javascript - CSS 弹出窗口不适用于页面的其余部分

javascript - React JS - 在选择值更改时更新用户信息

php - 如何改变溢出?

javascript - 对象字面量模式回调和这种困惑

javascript - 按下按钮后 HTML 页面卡住

php - 从数组打印值有时不起作用

php - Laravel 中的闭包是什么?

jquery - Android 横向显示的页面内容不可见