2014-01-23 231 views
0

即使執行返回值,此表單也會繼續提交,我的代碼有什麼問題?防止提交按鈕表單Javascript

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(); 
    } 
} 

回答

2

您正致電form.submit();,刪除它,它不會提交。 。

+0

然後我不會能夠發佈我所有的帖子變量 – user3196424

+0

我如何提交值而不使用form.submit()? – user3196424

+0

你的意思是使用AJAX? jQuery.ajax() –

1

您使用了錯誤的變量名「密碼」和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; 
} 
+0

它仍然提交表格 – user3196424

+0

@ user3196424然後它要麼沒有達到回調,要麼被調用兩次。執行此操作:在'return false;'行之前將'console.log(「return」之前)行添加到代碼中。在瀏覽器中打開開發者控制檯(這將顯示控制檯日誌記錄)並運行代碼。告訴我它打印出來的內容(如果有的話)不要使用警報彈出窗口。這可能會改變很多事情。始終使用console.log。 –

0

我沒有看到在使用formhash()。

代碼調用提交,而不是功能。

+0

需要發佈的數據在提交之前將被散列,formhas函數將被其他函數調用sha512加密函數 – user3196424

0

如果提交表單,這是因爲它是落在其他條件下。

添加大量的「console.log(」debug_X「)」其中「X」是每次都不同的數字。

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

也許你是傳遞一個值而不是一個對象,或者也可能發生相反的情況。

我的直覺告訴我要檢查密碼對象和它們的值。 另外它告訴我,在發佈評論給Don Rhummy之前,你沒有檢查pass1和pass2的內容。

請仔細檢查,在發佈您的下一個答案之前請先搜索更多。

你可以通過做「console.log(pass1);」並通過打開螢火蟲和檢查JavaScript控制檯。

0

從Form中刪除Action屬性。