这是我觉得令人不安的事情。我创建了一个小表单,我正在使用AJAX来验证我。我有一个javascript函数authenticate(),有时。
<form method="post" action="" id="login_form" onsubmit="authenticate()";>
// various inputs
<input type="button" onclick="authenticate()" value="Log In">
</form>
authenticate()
工作正常。但是,如果我按回车,表单是已提交,则失败。如果我调用onSubmit(),它也会失败。在我的调试中,我提醒传出的文本 - 它们是相同的。但是,Prototype Ajax函数将其称为onSuccess,但服务器没有响应。 (服务器输出“成功”或“失败”)。
为什么onClick()和onSubmit()的行为不同?调用完全相同的函数,但结果不同。
任何帮助都将不胜感激。
- 戴夫
答案 0 :(得分:4)
按钮的onClick
不提交表单。它只是一个在客户端调用authenticate()
的按钮。
您的onSubmit
事件将在表单提交时被调用,但您可能看不到客户端authenticate()
的结果,因为该表单将在之后立即发布。目前尚不清楚预期的功能是什么。
但是,如果authenticate()
完成了我的猜测,那么你需要将属性更改为onSubmit='return authenticate()'
并让函数返回true / false。如果为false,表单提交将被中止。