HTML 表单操作和提交问题

IT技术 javascript html forms action onsubmit
2021-01-17 10:41:10

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

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

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

这只是同时运行 action 和 JavaScript 的问题。

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

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

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

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

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

<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>
它正在工作,但我收到了 304 响应,而不是 200。这将如何导致?
2021-03-15 10:41:10
表单提交到validate.html后?你从服务器得到任何回应吗?
2021-03-18 10:41:10
重要的变化似乎包括returnonsubmit="".
2021-03-27 10:41:10
所以在我的 js 文件中,如果没有错误,我会得到 -> 返回 true,否则不会提交并重定向到验证 html 页面的 false?正确的?
2021-03-29 10:41:10
不完全是。如果您返回真实的表单将被提交,浏览器将提出请求。如果您返回 false 浏览器将停止,一切都在您手中如何处理。最简单的方法是提醒验证问题,如示例中所示。
2021-04-07 10:41:10

尝试

onsubmit="return checkRegistration()"
为什么return需要验证功能?
2021-03-21 10:41:10

尝试:

onsubmit="checkRegistration(event.preventDefault())"
为什么?有什么理由认为checkRegistration会消耗 的结果event.preventDefault()吗?
2021-04-01 10:41:10
@NicoHaase:我需要防止在表单提交和馈送功能checkRegistration()(或我在我的情况下使用的任何功能)上刷新页面event.preventDefault()并且不会破坏脚本并完全满足我的需要。
2021-04-07 10:41:10