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タグ内に新しいオプションを追加する場合は、コードを1か所に配置する必要があります、変更を1回行うようにします。配列は非常に長くなります。最初の選択を外部ファイルに入れてphpで取得することを考えています。2番目の選択の配列はすべて、すべてのファイルに含まれる外部javascriptファイルに含まれます。 ..基本的なJavaScriptファイルで大きな配列を作成する必要がないように、よりクリーンな実装を考えられますか、それとも正しい方法だと思いますか?

4

2 に答える 2

0

JSONを検討することもできますが、JavaScript 配列を使用しても問題はありません。

于 2012-04-25T19:44:19.097 に答える
0

配列を別の js ファイルに入れ、そのファイルを目的のページに含めることができます。

配列フォーム.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 に答える