1

html代码

<select id = "country">
<option selected = "selected" value = "0">all</option>
<option value = "1">country1</option>
<option value = "2">country2</option>
<option value = "3">country3</option>
</select>

<select id = "region">
<option selected = "selected">all</option>
</select>

Javascript代码

 //add an option and it's value with jquery append and javascript split.
 //Array elements are in form of option|value 
 //so that we can process them with split
var regions = new Array()
regions[0] = ["all|1"];
regions[1] = ["region1|2","region2|3"]
regions[2] = ["region3|4","region4|5"]
regions[3] = ["region5|6","region6|7"]

$(document).ready(function() {

$("#country").change(function(){
    $("#region").empty()
    var v = $("#country").val()
    for(i=0; i<regions[v].length; i++) 
        $("#region").append(new Option(regions[v][i].split("|")[0]),
                        regions[v][i].split("|")[1])
});
});

我将有许多不同的表单(因此我将不得不创建许多数组)并且每个表单都将被重复用于多个页面,因此如果我想在 select 标记内添加一个新选项,代码必须在一个地方,这样我就可以进行一次更改。数组会很长.. 我正在考虑将第一个选择放在一个外部文件中并用 php 检索它,第二个选择的数组将全部位于一个外部 javascript 文件中,该文件将包含在我的所有文件中.. 你能想出一个更简洁的实现,这样我就不必在基本的 javascript 文件中创建大型数组,或者你认为这是一个正确的方法吗?

4

2 回答 2

0

使用 JavaScript 数组没有任何问题,尽管您可能需要考虑JSON

于 2012-04-25T19:44:19.097 回答
0

您可以将数组放在单独的 js 文件中,并将该文件包含在所需页面中;

数组-form.js

var regions = new Array()
regions[0] = ["all|1"];
regions[1] = ["region1|2","region2|3"]
regions[2] = ["region3|4","region4|5"]
regions[3] = ["region5|6","region6|7"]

将此文件包含在您想要的任何页面中

于 2012-04-25T19:47:16.740 回答