1

我一直在发疯,我似乎不知道如何在通过 ajax 提交表单时阻止页面刷新。

我已经设置了一个 jsfiddle 供您查看:此链接

我已经完成了 event.preventDefault() 并返回 false;但似乎无法让它工作。我只是愚蠢吗?

最终结果应该是,当提交表单时,表单区域应该消失并被“隐藏的”ajax_message 取代,简单的读作是:“检查你的手机”。

提前感谢您保存我的发际线:)

4

7 回答 7

1

submit_number的函数是在“文档就绪”事件处理程序中定义的,并且仅在该函数(范围)及其子函数中可见,因此您不能从只有全局范围可用的 HTML 中使用它。

如果您要激活 firebug 或类似的东西,您会在错误控制台中看到它。

使其工作的快速破解将是替换

function submit_number(event) {

window.submit_number = function(event) {

因此明确地将您的函数置于全局范围内,但这不是推荐的方式。用你的单一用途函数污染全局范围是没有意义的。

更好的方法是将您的函数注册为来自 JS 的事件处理程序,如下所示:

$('form.kinkast_signup').submit(submit_number);

此外,您可能希望向该表单添加一个 ID,并通过 ID 而不是类名来引用它。

于 2011-08-04T11:22:28.623 回答
0

不要在表单中使用“onclick”,而是将其绑定到您的 JavaScript。

所以,而不是

function submit_number(event)

$(form).submit(function(event)
于 2011-08-04T11:22:41.017 回答
0
<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() 可以被移除。

于 2011-08-04T11:23:41.420 回答
0

onclick 事件发生时调用的函数应该简单地返回 false。

于 2011-08-04T11:26:21.327 回答
0

试试这个http://jsfiddle.net/ntJux/6/

于 2011-08-04T11:26:38.927 回答
0

我修好了你的小提琴:

http://jsfiddle.net/ntJux/5/

我只是默默地分配了事件处理程序,如下所示:

$('#idOfTheForm').submit(function(event){
    ...
});
于 2011-08-04T11:27:39.813 回答