47

我想对一些文本框条目运行 JavaScript 用户验证。

我遇到的问题是我的表单具有转到我们网站内新页面的操作,并且该onsubmit属性从不运行 JavaScript 函数。

有没有更好的解决方案,或者可以使用以下代码的解决方案:注意:JavaScript 文件编写正确,如果您将操作切换到checkRegistration().

这只是运行动作和 JavaScript 的问题。

<form name="registerForm" action="validate.html" onsubmit="checkRegistration()" method="post">
    <!-- Textboxes are here -->
    <!-- And the submit button -->
</form>
4

3 回答 3

71

您应该通过在onsubmit回调上返回 false 来停止提交过程。

<script>
    function checkRegistration(){
        if(!form_valid){
            alert('Given data is not correct');
            return false;
        }
        return true;
    }
</script>

<form onsubmit="return checkRegistration()"...

在这里,您有一个完整的示例。表单只会在你将 google 写入 input 时提交,否则会返回错误:

<script>
    function checkRegistration(){
        var form_valid = (document.getElementById('some_input').value == 'google');
        if(!form_valid){
            alert('Given data is incorrect');
            return false;
        }
        return true;
    }
</script>

<form onsubmit="return checkRegistration()" method="get" action="http://google.com">
    Write google to go to google...<br/>
    <input type="text" id="some_input" value=""/>
    <input type="submit" value="google it"/>
</form>
于 2013-04-28T12:22:45.303 回答
12

尝试

onsubmit="return checkRegistration()"
于 2013-04-28T12:21:45.013 回答
5

尝试:

onsubmit="checkRegistration(event.preventDefault())"
于 2019-03-01T09:23:20.253 回答