HTML表单操作和onsubmit问题

Jam*_*own 41 javascript forms html5 action onsubmit

我想在一些文本框条目上运行javascript用户验证.

我遇到的问题是我的表单有进入我们网站内新页面的操作,该onsubmit属性从不运行javascript函数.

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

这只是运行动作和javascript的问题.

<form name="registerForm" action="validate.html" onsubmit="checkRegistration()" method="post">
    <!-- textboxes here -->
    <!-- and submit button -->
</form>
Run Code Online (Sandbox Code Playgroud)

s3m*_*m3n 59

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

<script>
function checkRegistration(){
    if(!form_valid){
        alert('Given data is not correct');
        return false;
    }
    return true;
}
</script>
<form onsubmit="return checkRegistration()"...
Run Code Online (Sandbox Code Playgroud)

更新:

在这里你有完整的工作示例,只有当你把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>
Run Code Online (Sandbox Code Playgroud)

  • 重要的变化似乎包括`onsubmit =""`中的`return`. (3认同)

Aru*_*hny 8

尝试

onsubmit="return checkRegistration()"
Run Code Online (Sandbox Code Playgroud)

  • 为什么验证函数需要“return”? (5认同)

小智 5

尝试:

onsubmit="checkRegistration(event.preventDefault())"
Run Code Online (Sandbox Code Playgroud)