jQuery:form和ajax调用

时间:2010-12-29 19:13:04

标签: jquery

我想在提交时进行ajax调用。

<form id="editMail" action="" method="post">
    <input name="user_email" type="text" value="mail" maxlength="50" id="user_email" style="width:200px;">
    <input name="submit" type="submit" id="submit_editMail" value="Ändra">
</form>


    $('#editMail').submit(function() {
            $.ajax({
            type: "POST",
            url: "misc/email/activate.php",
            data: { action: 'edit', user_email: new_usermail },
            success: function(r){
            if(typeof(r.error) != 'undefined') {
            if(r.error != ''){
            alert(r.error);
            }
                }else{
           alert('OK');
        }
      });
    });

但是仍然没有发生任何事情,它没有进行ajax调用,但只是引用了它所在的页面。我尝试添加onClick =“return false;”提交按钮,但什么都没发生

2 个答案:

答案 0 :(得分:1)

在处理程序中返回false。否则,将启动POST请求,然后将发生默认表单提交。您还可以使用事件对象的preventDefault函数,如下所示:

$('#editMail').submit(function(event) {
    $.ajax({
        type: "POST",
        url: "misc/email/activate.php",
        data: { action: 'edit', user_email: new_usermail },
        success: function(r){
            if(typeof(r.error) != 'undefined') {
                if(r.error != ''){
                    alert(r.error);
                }
            }else{
                alert('OK');
            }
        }
    });
    event.preventDefault();
});

修改

确保在页面加载完成之前您的脚本未运行。您可能需要将脚本包装在ready处理程序中,如下所示:

$(document).ready(function() {
    $('#editMail').submit(function(event) {
        $.ajax({
            type: "POST",
            url: "misc/email/activate.php",
            data: { action: 'edit', user_email: new_usermail },
            success: function(r){
                if(typeof(r.error) != 'undefined') {
                    if(r.error != ''){
                        alert(r.error);
                    }
                }else{
                    alert('OK');
                }
            }
        });
        event.preventDefault();
    });
});

答案 1 :(得分:1)

您缺少.submit();

的右括号组

你也没必要);关闭你的“成功”功能。

还添加了所需的“return false”以防止默认提交操作。

校正:

$('#editMail').submit(function() {
    $.ajax({
        type: "POST",
        url: "misc/email/activate.php",
        data: { action: 'edit', user_email: new_usermail },
        success: function(r){
            if(typeof(r.error) != 'undefined') {
                if(r.error != ''){
                    alert(r.error);
                }
            }else{
                alert('OK');
            }
        }
    });
    return false;
});