2015-03-13 34 views
1

我想做一個密碼檢查系統。 我決定我也想檢查它是否是一個常用的密碼。保持JQuery Vars的另一個功能(全局變量?)

爲此,我將外部txt文件加載到數組中。但是,我的密碼檢查功能似乎無法讀取此數組。

jQuery(document).ready(function() { 
var commonPass = new Array; 
jQuery.get('/static/commonPass.txt', function(data){ 
    commonPass = data.split('\n'); 
    console.log(commonPass); 
}); 
console.log(commonPass); 
//you have to use keyup, because keydown will not catch the currently entered value 
jQuery('input[type=password]').keyup(function() { 

    // set password variable 
    var pswd = jQuery(this).val(); 

    //check if common password 
    console.log(pswd); 
    if (jQuery.inArray(str.toLowerCase(pswd), commonPass)!= -1) { 
     console.log('InArray'); 
     jQuery('#known').removeClass('valid').addClass('invalid'); 
    } else { 
     console.log('NotInArray'); 
     jQuery('#known').removeClass('invalid').addClass('valid'); 
    } 

}); 

是否有可能使全局jQuery/Javascript變量,並將這是解決這個問題?

+0

當您嘗試理解數組時,您收到了什麼錯誤? – 2015-03-13 20:31:13

+0

陣列簡直是空的 – MrGulerod 2015-03-13 20:42:21

+0

KJ王子已經回答了。這是工作。並且它加載得非常好,只是不知道如何訪問加載函數範圍之外的var。 – MrGulerod 2015-03-13 21:07:15

回答

1

移動commonPass的所有功能

jQuery(document).ready(function() { 
var commonPass = new Array; 

...應該是範圍之外......

var commonPass = new Array; 
jQuery(document).ready(function() { 

否則,您可以使用window.commonPasswindow是在瀏覽器中工作時JavaScript的「全局」變量。 Javascript的變量存在於它們聲明的函數範圍內(或者如果在函數之外,則爲window)。