我一直在发疯,我似乎不知道如何在通过 ajax 提交表单时阻止页面刷新。
我已经设置了一个 jsfiddle 供您查看:此链接
我已经完成了 event.preventDefault() 并返回 false;但似乎无法让它工作。我只是愚蠢吗?
最终结果应该是,当提交表单时,表单区域应该消失并被“隐藏的”ajax_message 取代,简单的读作是:“检查你的手机”。
提前感谢您保存我的发际线:)
您submit_number
的函数是在“文档就绪”事件处理程序中定义的,并且仅在该函数(范围)及其子函数中可见,因此您不能从只有全局范围可用的 HTML 中使用它。
如果您要激活 firebug 或类似的东西,您会在错误控制台中看到它。
使其工作的快速破解将是替换
function submit_number(event) {
和
window.submit_number = function(event) {
因此明确地将您的函数置于全局范围内,但这不是推荐的方式。用你的单一用途函数污染全局范围是没有意义的。
更好的方法是将您的函数注册为来自 JS 的事件处理程序,如下所示:
$('form.kinkast_signup').submit(submit_number);
此外,您可能希望向该表单添加一个 ID,并通过 ID 而不是类名来引用它。
不要在表单中使用“onclick”,而是将其绑定到您的 JavaScript。
所以,而不是
function submit_number(event)
做
$(form).submit(function(event)
<form method="post" class="kinkast_signup" onsubmit="submit_number(); return false">
<input id="login_email" type="text" name="to" />
<input id="signInButtonSubmit" type="submit" name="action" value="Send" />
</form>
进而
window.submit_number=function() {
//Prevent Default page refresh on submit
//event.preventDefault();
......
}
preventDefault() 可以被移除。
onclick 事件发生时调用的函数应该简单地返回 false。
我修好了你的小提琴:
我只是默默地分配了事件处理程序,如下所示:
$('#idOfTheForm').submit(function(event){
...
});