开发者

load Javascript object from file

I asked a question in this thread Stackoverflow, and it works perfect. So tnx to all the users who gave me a reply. But now I have a other question.

I would like to have the object in a seperate file, so I only need to update the file in stead of the JS file (otherwise it will be very big). I'm using JQUERY.

I now looks like this (with all the info in the JS file). IBANInfo is used to fill a selectbox

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

I thought I could do it like this, but I get the message undefined in my selectbox.

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[开发者_StackOverflowkey];
            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"
        }
    }
*/

What am I doing wrong. Tnx in advance

Extra info: I already made a site to generate IBANnumbers, you can find it on iban.wswebcreation.nl. On this site you can generate 1-100 IBANnumbers. What I want to make is a way to validate an IBANnumber a user want to validate. He can do that by filling in the IBANnumber in a inputfield (see the other sites).

If you see the source file, you will see that var IBANInfo is in the JS file. I want to put it in a seperate txt file which is loaded. The IBANInfo holds all the info of the countries that use IBANnumber (the amount of digits, the countrycode, the way the accountnumber is build, and so on). I now made it with some help as an object, see link to former question. This works. But in the future I also want to use IBANInfo for validating the IBANnumber.

Hope you now have enough info


EDIT:

To give global access you could do something like this:

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

You need to use $.getJSON instead. Also the get and post methods dont return the data because they need to work async, so you actuall have to run your createSelect function as the call back:

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

Then you createSelect needs to take at least one argument which will be the data... So your definition will look like:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜