我有一个这样的提交按钮:
<input class="create_button" name="commit"
onclick="return validate_activity();"
type="submit" value="Save">
我发现无论validate_activity()返回true还是false,此按钮都会始终向服务器发送请求?
这里的问题是什么?
更新
实际上,我在validate_activity()中犯了一个错误,它让我认为它返回false,但事实并非如此。
答案 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>