2017-08-29 23 views
0

我遇到了一個奇怪的問題。我創建了一個登錄頁面,發送數據到PHP頁面,返回一些響應代碼,如"00000"好的"404"找不到等。我用郵遞員工具測試了我的服務器,發現服務器工作正常。當我的html發送數據到服務器服務器響應代碼。如果響應代碼出錯了,那麼html alert就是了。 但是,如果我輸入正確的憑證,並且服務器響應成功,我的登錄頁面將無故重新加載。 這裏是我的javascript在輸入正確的值時重新加載網頁

function validatelog(){ 
var user_email_log=document.getElementById("user_email_log").value; 
var user_pass_log=document.getElementById("user_pass_log").value; 
if (user_email_log&&user_pass_log!=null) 
{ 
      var hr = new XMLHttpRequest(); 
      var url = "../logic/login.php"; 
      var vars = 
"user_email_log="+user_email_log+"&user_pass_log="+user_pass_log; 
      hr.open("POST", url, true); 
      hr.setRequestHeader("Content-type", "application/x-www-form- 
urlencoded"); 
      hr.onreadystatechange = function() { 
      if(hr.readyState == 4 && hr.status == 200) { 
       var saman = hr.responseText.trim(); 
       if(saman=="00000"){ 
        alert(saman); 
       }else if (saman == "404"){ 
        alert("Failed with 404"); 
       } 

       else{ 
        alert(saman); 
       } 
       } 
      } 
      hr.send(vars); 
     } 
    } 

而且我的HTML看起來像這樣

<input id="user_email_log"/> 
<input id="user_pass_log"/> 
<button onclick="validatelog();">Log in</button> 

回答

1

添加type="button"到按鈕:

<button type="button" onclick="validatelog();">Log in</button> 

如果沒有指定,它是一樣的type="submit" ,這會導致你的頁面重新加載。

+0

謝謝,這樣的rookee錯誤值得一教:) :) – GeekWithGlasses

+0

不要擔心,它會發生^ - ^ –

0

如果你使用jQuery,你可以這樣做。

$(document).on('click', 'button', function(e) { 
    e.preventDefault(); 
    $.get('url') 
}) 

我認爲頁面正在重新加載,因爲這是默認行爲。

相關問題