【发布时间】:2011-02-01 00:58:41
【问题描述】:
这是我觉得令人不安的事情。我创建了一个小表单,我正在使用 AJAX 为我进行验证。我有一个 JavaScript 函数 authenticate(),有时可以工作。
<form method="post" action="" id="login_form" onsubmit="authenticate()";>
// various inputs
<input type="button" onclick="authenticate()" value="Log In">
</form>
authenticate() 在我单击按钮时工作得很好。但是,如果我按 Enter 键,则表单是 submitted,它会失败。如果我调用 onSubmit() 也会失败。在我的调试中,我提醒传出的文本——它们是相同的。然而,Prototype Ajax 函数将其称为 onSuccess,但只是没有来自服务器的响应。 (服务器输出“成功”或“失败”)。
为什么 onClick() 和 onSubmit() 的行为不同?调用完全相同的函数,但结果不同。
任何帮助将不胜感激。
--戴夫
【问题讨论】:
-
authenticate()的预期副作用是什么?您是否打算将表单回发到当前页面 URL? -
您正在使用 Prototype 进行 Ajax 调用,为什么不用于事件处理?摆脱那些旧的内联内容并在表单上使用现代 DOM 事件处理程序。
标签: javascript forms