2014-02-11 50 views
0
$(function() { 
    $('#login').submit(function(e){ 
     login(); 
     e.preventDefault(); 
    }); 
}); 

function login() { 
    $('#btnLogin').attr('disabled','disabled'); 
    $("#btnLogin").css('background', 'url(/imgs/submit.gif) 50% -3px'); 
    var url = $(this).attr('action'); 
    var data = $(this).serialize(); 
    $("#btnLogin").css('color', 'transparent');  
    $.post(url, data).done(function(data) { 
     $('#btnLogin').removeAttr('disabled'); 
     $("#btnLogin").css('color', '#ffffff'); 
     $("#btnLogin").css('background', '#4ea885'); 
     data = jQuery.parseJSON(data); 
     if(data === false) { 
      $(".cover").append('<div class="alert alert-warning">We\'re sorry, that password does not match the username or email address provided.</div>'); 
     } else if (data == true) { 
      location.reload(); 
     } 
    }); 

}附加的preventDefault來調用一個函數

我嘗試過各種方式.submit,我想從提交

+1

你有什麼是正確的,但是如果你的'login()'函數拋出一個錯誤,'e.preventDefault()'不會被達到。所以檢查你的控制檯是否有錯誤 –

+0

...我的錢'數據'不是有效的JSON。 –

+0

......但將'login()'更改爲'login.call(this)',以便'login'中的'this'的值將被設置爲'#login'元素。 –

回答

0
$(function() { 
    $('#login').submit(function(e){ 
     e.preventDefault(); 
     login(); 

    }); 
}); 
+0

這給了我一個語法錯誤,未捕獲的SyntaxError:意外的令牌< – user3105560

+0

再次檢查它親愛的! – Jain

0

代碼#login附加到功能登錄和預防你在你的問題中指定的幾乎是正確的。問題在於你的login()函數中的$(this)部分。 $(this)不具有訪問表單屬性的範圍。如果我的猜測是正確的$(this).attr('action')將返回'undefined',這會導致您的發佈請求失敗,反過來e.preventDefault甚至不會執行。所以你的表單只是變得張貼。你可以檢查你的控制檯,並讓我們知道你是否有任何錯誤。

更換

var url = $(this).attr('action'); 
var data = $(this).serialize(); 

var url = $('#login').attr('action'); 
var data = $('#login').serialize(); 

如果這不是問題請評論,我會再次檢查。

相關問題