2014-02-24 86 views
-1

我有這段代碼,但表單不會提交。 任何想法爲什麼?jQuery提交表單不工作

$(document).ready(function(){ 
$("#login_form").submit(function(e){ 
    e.preventDefault(); 
    var password = $("#password").val(); 
    var p = document.createElement("input"); 
    $("#login_form").append(p); 
    p.name = "p"; 
    p.type = "hidden"; 
    p.value = hex_sha512(password); 
    $("#password").val(''); 
    $("#login_form").submit(); 
});  
}); 

#password口令的值不會恢復到什麼都沒有,所以ID的正確。

+0

請分享jsfillde或html代碼。 –

+0

你真的需要防止默認行爲,這似乎是你想要做的嗎? –

+0

提交後,提交。 ∞ – MMM

回答

2

您並不需要e.preventDefault();,它會阻止表單提交,因此您應該刪除e.preventDefault();

$(document).ready(function() { 
    $("#login_form").submit(function (e) { 
     var password = $("#password").val(); 
     var p = document.createElement("input"); 
     $("#login_form").append(p); 
     p.name = "p"; 
     p.type = "hidden"; 
     p.value = hex_sha512(password); 
     $("#password").val(''); 
    });  
}); 
1

形式不提交,因爲你已經得到了在那裏e.preventDefault停止提交。然後您再次觸發事件submit,並陷入遞歸循環。

刪除e.preventDefault

0

刪除e.preventDefault();,它會阻止表單提交甚至引發提交事件

$(document).ready(function(){ 
    $("#login_form").submit(function(){  
     var password = $("#password").val(); 
     var p = document.createElement("input"); 
     $("#login_form").append(p); 
     p.name = "p"; 
     p.type = "hidden"; 
     p.value = hex_sha512(password); 
     $("#password").val(''); 
    });  
}); 
+1

優秀,作品完美。謝謝! :) – Sims

0

觸發本地提交你所做的更改

$(document).ready(function(){ 
    $("#login_form").submit(function(e){ 
     e.preventDefault(); 
     var password = $("#password").val(); 
     var p = document.createElement("input"); 

     p.name = "p"; 
     p.type = "hidden"; 
     p.value = hex_sha512(password); 

     $("#login_form").append(p); 
     $("#password").val(''); 

     this.submit(); // native handler 
    });  
}); 

觸發隱藏的輸入後提交本土後插入時確保它在表單提交時在那裏。