2013-05-06 30 views
0

我用JQuery創建了一個登錄腳本,當用戶名和密碼的值等於localstorage中的用戶名和密碼值時(它們在點擊「Register」時被存儲),它隱藏登錄div並顯示一個叫做'accent 」。然而,無論我在JavaScript中做什麼,登錄頁面都會一直存在,重音頁面也不會顯示。爲什麼我的登錄腳本無法工作?

我創建了一個的jsfiddle那就說明我的意思是: http://jsfiddle.net/CR47/bpztq/

下面是登錄按鈕的代碼:

$('#loginButton').click(function(){ 
    if(localStorage.getItem('Username') != null || localStorage.getItem('Username') != ''){ 
     var cu = localStorage.getItem('Username'); 
     var cp = localStorage.getItem('Password'); 
     alert(cu);//I've alerted to show that the getItem is working 
     alert(cp); 
     var iu = $('#username').val(); 
     var ip = $('#password').val(); 
     if(iu == cu && ip == cp){ 
      $('#login').hide(0); 
      $('#accent').show(0); 
      localStorage.setItem('Logged In', 'yes'); 
      $('#name').val() == localStorage.getItem('Name'); 
      $('#gender').val() == localStorage.getItem('Gender'); 
      $('#age').val() == localStorage.getItem('Age'); 
      $('#address').val() == localStorage.getItem('Address'); 
      $('#phone').val() == localStorage.getItem('Phone'); 
      $('#email').val() == localStorage.getItem('Email'); 
     }else{ 
      alert('Incorrect username/password combo.'); 
     } 
    } 
}); 

的「登錄」爲localStorage的值不設置爲yes 。

+0

只需添加e.preventDefault();或在$('#loginButton')行動中返回false – Olrac 2013-05-06 02:02:55

回答

2

問題在於單擊$('#loginButton')之後提交表單並重新加載頁面。要阻止它,您可以在Click事件中添加preventDefault()

$('#loginButton').click(function(e){ 
     e.preventDefault(); 
     if(localStorage.getItem('Username') != null || localStorage.getItem('Username') != ''){ 
      var cu = localStorage.getItem('Username'); 
      var cp = localStorage.getItem('Password'); 
      alert(cu);//I've alerted to show that the getItem is working 
      alert(cp); 
      var iu = $('#username').val(); 
      var ip = $('#password').val(); 
      if(iu == cu && ip == cp){ 
       $('#login').hide(0); 
       $('#accent').show(0); 
       localStorage.setItem('Logged In', 'yes'); 
       $('#name').val() == localStorage.getItem('Name'); 
       $('#gender').val() == localStorage.getItem('Gender'); 
       $('#age').val() == localStorage.getItem('Age'); 
       $('#address').val() == localStorage.getItem('Address'); 
       $('#phone').val() == localStorage.getItem('Phone'); 
       $('#email').val() == localStorage.getItem('Email'); 
      }else{ 
       alert('Incorrect username/password combo.'); 
      } 
     } 
    }); 
+0

這工作,謝謝。 – CR47 2013-05-06 02:36:38

+0

很高興能幫到.. :) – 2013-05-06 02:38:33

1

您需要防止刷新頁面,在:

$('#loginButton').click(function (e){ 

添加e.preventDefault();

除了需要分配的變量不是對它們進行比較,變化:

$('#age').val() == localStorage.getItem('Age'); 

到:

$('#age').val() = localStorage.getItem('Age'); 

順便說一句,這SO後可能對你有所幫助 - Difference between == and === in JavaScript

+0

感謝您的額外提示,那只是我在編輯時嘗試的,但在@Nikko Reyes的評論工作後纔拿出來。 – CR47 2013-05-06 02:37:19

相關問題