onsubmit()不起作用

时间:2010-03-26 04:01:49

标签: javascript forms

这是我觉得令人不安的事情。我创建了一个小表单,我正在使用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()的行为不同?调用完全相同的函数,但结果不同。

任何帮助都将不胜感激。

- 戴夫

1 个答案:

答案 0 :(得分:4)

按钮的onClick不提交表单。它只是一个在客户端调用authenticate()的按钮。

您的onSubmit事件将在表单提交时被调用,但您可能看不到客户端authenticate()的结果,因为该表单将在之后立即发布。目前尚不清楚预期的功能是什么。

但是,如果authenticate()完成了我的猜测,那么你需要将属性更改为onSubmit='return authenticate()'并让函数返回true / false。如果为false,表单提交将被中止。