0

我是一个使用 Ajax 的菜鸟,我真的需要一些帮助。我一直在阅读loadJSON 插件的教程。有人用ajax这个插件吗?

我一定错过了一个关键步骤,因为我无法将'regions.js'文件加载到下拉菜单中。我已经复制并粘贴了代码,创建了 region.js 和 towns.js 文件,还查看了 Chrome 开发工具中的“网络”面板以查看脚本是否返回任何内容。正在调用脚本,并且Header response is 200它的使用 GET 方法,我可以JSON在 Preview 选项卡中看到加载。但是,当我在控制台中检查$('.region');value/s 时,它返回一个空数组。

有人会告诉我如何让本教程正常工作吗?我想作者认为读者已经了解如何做到这一点,因为他没有包含 ajax 代码。谢谢。

HTML:

<label for="Region">Region</label>
<select name="Region" >
    <option value="" class="regions"></option>
</select>

<label for="Town">Town</label>
<select name="Town" id="Town" multiple="multiple" >
    <option class="towns" >-</option>
</select>

区域.js (JSON)

{
    "regions":[
        {
            "value": 1,
            "text": "East Europe"
        },
        {
            "value": 2,
            "text": "West Europe"
        },
        {
            "value": 3,
            "text": "Middle Europe"
        }
    ]
}   

城镇.js (JSON)

{
    "towns":[
        {
            "value": 17,
            "text": "Belgrade"
        },
        {
            "value": 18,
            "text": "Buchurest"
        },
        {
            "value": 19,
            "text": "Moscov"
        },
        {
            "value": 20,
            "text": "Kiev"
        }
    ]
}    

jQuery

$('#Region').loadJSON('regions.js');

jQuery

$('#Region').change(function() {
            var id = $(this).val();
            $('#Town').loadJSON('towns' + id + '.js');
    });
4

2 回答 2

1

根据文档:

如果城镇数组放在 towns1.js、towns2.js、towns3.js 文件中,以下代码将加载城镇下拉列表:

您的城镇数据文件命名不正确。

网页有bug,

<select name="Region" >

应该:

<select name="Region" id="Region" >

ID 是$("#Region")工作所必需的。

于 2013-06-07T02:45:54.873 回答
0

编译器可能找不到您尝试加载的 js 文件,您应该提供获取该文件的正确路径可能是

$('#Region').loadJSON('./regions.js');

如果文件在单独的文件夹中,请指定文件夹名称

$('#Region').loadJSON('./js/regions.js');

其中 js 是文件夹的名称..

于 2013-06-07T10:18:31.410 回答