Jquery 从文件加载Javascript对象

Jquery 从文件加载Javascript对象,jquery,file,object,load,Jquery,File,Object,Load,我在这个帖子里问了一个问题,效果非常好。所以tnx给了所有给我回复的用户。但现在我还有一个问题 我想有一个单独的文件中的对象,所以我只需要更新文件而不是JS文件(否则它将非常大)。我正在使用JQUERY 我现在看起来像这样(JS文件中包含所有信息)。IBANInfo用于填充选择框 var IBANInfo = { "ccAL":{ countryCode:"AL", countryName:"Albanië", IBANl

我在这个帖子里问了一个问题,效果非常好。所以tnx给了所有给我回复的用户。但现在我还有一个问题

我想有一个单独的文件中的对象,所以我只需要更新文件而不是JS文件(否则它将非常大)。我正在使用JQUERY

我现在看起来像这样(JS文件中包含所有信息)。IBANInfo用于填充选择框

var IBANInfo = {
    "ccAL":{
        countryCode:"AL",
        countryName:"Albanië",
        IBANlength:"28",
        bankFormCode:"0  8n 0 ",
        accountNum:"0  16   0 "
    },
    "ccAD":{
        countryCode:"AD",
        countryName:"Andorra",
        IBANlength:"24",
        bankFormCode:"0  4n 4n",
        accountNum:"0  12   0 "
    },
    "ccBE":{
        countryCode:"BE",
        countryName:"België",
        IBANlength:"16",
        bankFormCode:"0  3n 0 ",
        accountNum:"0   7n  2n"
    }
};
//---- then this function is used to build the selectList
function createSelect(){
    var selectList   =  '';
    var key;
    selectList      +=  "<option value=''>Kies een land</option>\n";
    for (key in IBANInfo) {
        if (IBANInfo.hasOwnProperty(key)) {
            var countryInfo  =  IBANInfo[key];
            selectList      +=  "<option value='"+countryInfo.countryCode+"'>"+countryInfo.countryName+"</option>\n";
        }
    }
    $('#selectBox').html(selectList);
}
var IBANInfo={
“行政协商会”:{
国家代码:“AL”,
国家名称:“Albanië;”,
IBANlength:“28”,
银行代码:“0 8n 0”,
accountNum:“0 16 0”
},
“共同国家评估”:{
国家代码:“广告”,
国名:“安道尔”,
IBANlength:“24”,
银行代码:“0 4n 4n”,
accountNum:“0 12 0”
},
“ccBE”:{
国家代码:“BE”,
国家名称:“België;”,
IBANlength:“16”,
银行代码:“0 3n 0”,
accountNum:“0 7n 2n”
}
};
//----然后,此函数用于构建selectList
函数createSelect(){
var selectList='';
var键;
selectList+=“Kies een land\n”;
for(输入IBANInfo){
if(IBANInfo.hasOwnProperty(键)){
var countryInfo=IBANInfo[key];
选择列表+=“”+countryInfo.countryName+“\n”;
}
}
$('#selectBox').html(selectList);
}
我想我可以这样做,但我在选择框中没有定义消息

var IBANInfo = $.get('include/countryCodes.txt');

// also tried var IBANInfo = $.getJSON('include/countryCodes.txt');

//---- then this function is used to build the selectList
function createSelect(){
    var selectList   =  '';
    var key;
    selectList      +=  "<option value=''>Kies een land</option>\n";
    for (key in IBANInfo) {
        if (IBANInfo.hasOwnProperty(key)) {
            var countryInfo  =  IBANInfo[key];
            selectList      +=  "<option value='"+countryInfo.countryCode+"'>"+countryInfo.countryName+"</option>\n";
        }
    }
    $('#selectBox').html(selectList);
}

/*
the countryCodes.txt file is like this:
{
    "ccAL":{
            countryCode:"AL",
            countryName:"Albani&euml;",
            IBANlength:"28",
            bankFormCode:"0  8n 0 ",
            accountNum:"0  16   0 "
        },
        "ccAD":{
            countryCode:"AD",
            countryName:"Andorra",
            IBANlength:"24",
            bankFormCode:"0  4n 4n",
            accountNum:"0  12   0 "
        },
        "ccBE":{
            countryCode:"BE",
            countryName:"Belgi&euml;",
            IBANlength:"16",
            bankFormCode:"0  3n 0 ",
            accountNum:"0   7n  2n"
        }
    }
*/
var IBANInfo=$.get('include/countryCodes.txt');
//还尝试了var IBANInfo=$.getJSON('include/countryCodes.txt');
//----然后,此函数用于构建selectList
函数createSelect(){
var selectList='';
var键;
selectList+=“Kies een land\n”;
for(输入IBANInfo){
if(IBANInfo.hasOwnProperty(键)){
var countryInfo=IBANInfo[key];
选择列表+=“”+countryInfo.countryName+“\n”;
}
}
$('#selectBox').html(selectList);
}
/*
countryCodes.txt文件如下所示:
{
“行政协商会”:{
国家代码:“AL”,
国家名称:“Albanië;”,
IBANlength:“28”,
银行代码:“0 8n 0”,
accountNum:“0 16 0”
},
“共同国家评估”:{
国家代码:“广告”,
国名:“安道尔”,
IBANlength:“24”,
银行代码:“0 4n 4n”,
accountNum:“0 12 0”
},
“ccBE”:{
国家代码:“BE”,
国家名称:“België;”,
IBANlength:“16”,
银行代码:“0 3n 0”,
accountNum:“0 7n 2n”
}
}
*/
我做错了什么。提前Tnx

额外信息: 我已经创建了一个生成iBanNumber的站点,您可以在iban.wswebcreation.nl上找到它。在这个网站上,你可以生成1-100个iBanNumber。我想做的是验证用户想要验证的IBANnumber的方法。他可以通过在inputfield中填写IBANnumber来实现这一点(参见其他站点)

如果您看到源文件,您将看到var IBANInfo在JS文件中。我想把它放在一个单独的txt文件加载。IBANInfo保存使用IBANnumber的国家的所有信息(位数、国家代码、accountnumber的生成方式等)。 我现在在一些帮助下制作了它作为一个对象,请参见前一个问题的链接。这很有效。但在将来,我还想使用IBANInfo来验证IBANnumber

希望您现在有足够的信息编辑:

要提供全球访问权限,您可以执行以下操作:

var IBANInfo = {};
$.getJSON('include/countryCodes.txt', function(json){ IBANInfo = $.extend({}, IBANInfo, data);});

您需要改用
$.getJSON
。另外,get和post方法不返回数据,因为它们需要异步工作,因此您实际上必须运行
createSelect
函数作为回调:

$.getJSON('include/countryCodes.txt',createSelect)

然后createSelect需要至少获取一个参数,该参数将是数据。。。因此,您的定义如下所示:

function createSelect(IBANInfo){ /* your logic */}

如果你接受其他问题的一些答案,人们会更倾向于帮助你。我如何接受答案?我需要回答我让它工作的问题吗?点击计票下面的复选标记来获得答案。回答了所有的问题,我真傻。希望现在有人能帮助我,因为我总是使用答案并尝试侧注:假设您使用Unicode(很少有不使用的理由),例如UTF-8编码,您不需要编码为
ë–任何字符都可以用Unicode表示。好的,tnx。我会在今天晚些时候尝试(现在需要有复活节狂欢节),但有一个问题。对不起,我没有给你所有的信息。IBANInfo需要由多个函数多次访问。如果我用这个,纠正我,如果我错了,我还是一个新手,它将与createSelect功能相结合。我以后怎样才能访问它?Tnx在前进你可能想重新考虑这个。。。如果多个函数需要使用它,您如何知道对象何时实际可用(假设您没有将async设置为false)?如果您将async设置为false,那么使用单独的请求来获取信息又有什么意义呢?嗨,prodigitalson,我为您添加了额外的信息来解释我想做什么。我也试过你的解决方案,但没用。我在你说/*你的逻辑*/的地方放了一个警报,但没有显示出来。看起来是这样的,或者找不到文件,或者函数没有运行,因为出现了其他问题。Firebug不会给出错误。是否有其他解决方案可以从文件中“加载”可以放入对象中的内容?您可以将其包含在一个常规脚本标记中。