jQuery提交表单不起作用

时间:2014-02-24 10:36:26

标签: javascript 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正确。

4 个答案:

答案 0 :(得分: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 :(得分:1)

表单未提交,因为您已在其中e.preventDefault停止提交。然后,您再次触发submit事件,并在递归循环中陷入困境。

删除e.preventDefault

答案 2 :(得分: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('');
    });    
});

答案 3 :(得分: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
    });    
});

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