0

jQuery 関数を 1 回だけ実行したいだけです。現在、私は国、州/都市のドロップダウンを使用しています。したがって、ユーザーが国を選択すると、都市/州が表示されます。しかし、最初は何も表示されないので、document.ready で呼び出します。しかし問題は、毎回最初の国の都市を表示することです。それで、それに対する解決策はありますか。または、他の国、都市のドロップダウンを提案できますか.

ドロップダウンのコードは

function print_country(country_id){
// given the id of the <select> tag as function argument, it inserts <option> tags
var option_str = document.getElementById(country_id);
var x, i=0;
for(x in country_arr){
    option_str.options[i++] = new Option(country_arr[x],country_arr[x]);
}
}

function print_state(state_id, state_index){
var option_str = document.getElementById(state_id);
var x, i=0; state_index++;
var state_arr = s_a[state_index].split("|");
for(x in state_arr){
        option_str.options[i++] = new Option(state_arr[x],state_arr[x]);
}
}

ページのロード時に最初の国の引用がデフォルトで表示されるように変更することもできます。ありがとう

4

1 に答える 1

0

jQuery を使用する必要があります。

function print_country(country_id){
  // given the id of the <select> tag as function argument, it inserts <option> tags
  var countrySel = $("#"+country_id);
  // create a "singleton" by returning if the state exists
  if (countrySel.size() > 1) return;
  $.each(country_arr,function() {
      countrySel.append('<option value="'+$(this)+'">'+$(this)+'</option>');
  });
  // call it with the second option (assuming "Please select")
  // change to ,0 for first option
  print_state("state", 1); 
}

function print_state(state_id, state_index){
  var stateSel = $("#"+state_id);
  var state_arr = s_a[state_index].split("|");
  $.each(state_arr,function() {
    stateSel.append('<option value="'+$(this)+'">'+$(this)+'</option>');
  });
}
于 2013-04-29T13:15:13.130 に答える