提交按钮验证

时间:2011-12-26 18:07:28

标签: javascript html forms

我有一个这样的提交按钮:

<input class="create_button" name="commit" 
       onclick="return validate_activity();" 
       type="submit" value="Save">

我发现无论validate_activity()返回true还是false,此按钮都会始终向服务器发送请求?

这里的问题是什么?

更新

实际上,我在validate_activity()中犯了一个错误,它让我认为它返回false,但事实并非如此。

6 个答案:

答案 0 :(得分:10)

尝试不做同样的事情,例如onclick="validate_activity();"并检查您的函数在无效的情况下是否返回

答案 1 :(得分:3)

<input type="button" name="commit"
value="Save"
onclick="validate_activity(myform)" />

在Javascript中,经过验证后,执行form.submit()或者返回false。

我希望这有帮助!这将验证您的表单并提交。如果您的浏览器中禁用了Javascript,则此提交将失败。

如果您希望提交继续进行,即使在客户端浏览器中禁用了javascript(意味着没有验证但会提交),那么

<input type="button" name="commit"
value="Save"
onclick="validate_activity(myform);return false;" />

我希望没有任何验证根本不会打击你。但是,javascript只是客户端,我希望无论如何你都会在服务器端进行严格的健全性检查,我认为人们会将它用于非常基本的现场检查。

答案 2 :(得分:3)

试试这个......

<form action="...." onsubmit="submitForm()" name="form">

<input type="submit" value="Save">

</form> 


function submitForm(){

    if(validationfails){

        return false;
    }
    else  {
        document.form.submit();
        return true;
    }
 }

答案 3 :(得分:2)

我猜问题是onclick="return validate_activity();",这个return语句在单击提交按钮时执行(不返回false)。 正确的方法是onclick="validate_activity();"并在validata_activity函数中返回false,这将停止默认的提交操作。

答案 4 :(得分:2)

如果您正在进行表单验证,然后在按钮的onclick事件上进行验证,那么您尝试的方式没有任何意义,您应该在<form></form> onsumbmit事件中使用它此

<form action="someURL" method="post" onsubmit="return validate_activity();">

</form>

答案 5 :(得分:1)

您应该使用表单的submit事件进行验证..

<form action="..." method="..." onsubmit="return validate_activity()">
    <...>
    <input class="create_button" name="commit" type="submit" value="Save" />
    <...>
</form>