即使执行返回值,此表单也会继续提交,我的代码有什么问题?
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();
}
}
答案 0 :(得分:2)
您正在呼叫form.submit();
,将其删除但不会提交。
答案 1 :(得分:1)
您使用了错误的变量名称“password”和cpassword“。您创建了pass1
和pass2
,因此您需要使用它们。
更改为:
//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属性。