2014-02-24 62 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 
    });  
}); 

触发隐藏的输入后提交本土后插入时确保它在表单提交时在那里。