阻止按钮表单提交Javascript

时间:2014-01-23 20:03:23

标签: javascript php html login

即使执行返回值,此表单也会继续提交,我的代码有什么问题?

function formhash (form, password)
{
    var pass1 = document.getElementById("password").value;
    var pass2 = document.getElementById("cpassword").value;
    var ok = true;
    if (password != cpassword) {
        //alert("Passwords Do not match");
        document.getElementById("password").style.borderColor = "#E34234";
        document.getElementById("cpassword").style.borderColor = "#E34234";
        ok = false;
        return;
    }
    else
    {
        $.post('insert_home.php'
            {PRIMAID:PRIMAID,EDITCAP:EDITCAP,EDITIMG:EDITIMG,EB_TITLE:EB_TITLE}).done(function(data){
            alert ("Book Successfully Updated");
            location.reload();
        });


        var p = document.createElement("input");    
        form.appendChild(p);
        p.name="p";
        p.type="hidden";
        p.value=hex_sha512(password.value);
        password.value="";
        form.submit();
    }
}

5 个答案:

答案 0 :(得分:2)

您正在呼叫form.submit();,将其删除但不会提交。

答案 1 :(得分:1)

您使用了错误的变量名称“password”和cpassword“。您创建了pass1pass2,因此您需要使用它们。

更改为:

//You were using the WRONG variable names
if (pass1 != pass2) {
    //alert("Passwords Do not match");
    document.getElementById("password").style.borderColor = "#E34234";
    document.getElementById("cpassword").style.borderColor = "#E34234";
    ok = false;
    return false;
}

答案 2 :(得分:0)

我没看到使用formhash()的位置。

代码调用提交,而不是函数。

答案 3 :(得分:0)

如果它提交表单,那么'因为它正处于其他状态。

添加许多“console.log(”debug_X“)”其中“X”每次都是不同的数字。

你必须在console.log中添加pass1和pass2的值。

也许你是一个值而不是一个对象,或者也可能发生相反的情况。

我的直觉告诉我要检查密码对象及其值。 它还告诉我,在向Don Rhummy发表评论之前,你没有检查pass1和pass2的内容。

请仔细检查并在发布下一个答案之前搜索更多内容。

您可以通过执行“console.log(pass1);”获得该值。并打开firebug并检查javascript控制台。

答案 4 :(得分:0)

从表单中删除Action属性。