0

国リストを持つhtmlドロップダウンリストがあります。現在の国をリストのデフォルト値として設定したいと思います。Geolocation を使用して国を取得するための JavaScript コードを見つけました。

私のコード:

function getCountry(var name) {
    if(name==geoip_country_name()) {
        return "selected";
    }
}

次にselected、オプション リストの属性を設定する必要があります。

私はこれを試しました:

<option value="Sri Lanka" selected="getCountry('sri Lanka')">Sri Lanka</option>

しかし、これは正しくありません。
基本的にJavaScript関数を使って選択した属性値を設定したい

それ、どうやったら出来るの?

4

4 に答える 4

4

イベントを使用してwindow.onload、ドロップダウンの値を設定するだけです。ハードコードされた国名は、ジオ サービスとは異なる場合があることに注意してください。

<script>
    window.onload = function(){
        document.getElementById("country").value = geoip_country_name();
    }
</script>

<select id="country" name="country">
<option value="Sri Lanka">Sri Lanka</option>
<option value="UK">UK</option>
<option value="USA">USA</option>
<select>
于 2012-12-18T07:26:02.487 に答える
0

JQuery を使用している場合、次の行で問題が解決するはずです。

$('select').val(geoip_country_name());

小文字で名前を返す場合geoip_country_name、選択リストの初期化中、各オプションの値は小文字である必要があります。

于 2012-12-18T07:20:30.883 に答える
0

基本的には、次のようにできます。

<html>
<body>
  <select id="country">
  <option id="germany" value="Germany">DE</option>
  <option id="uk" value="UK">UK</option>
  <option id="usa" value="USA">USA</option>
</select>
<script>
  var selectedCountry =  'uk'; //getCountry
  var index = document.getElementById(selectedCountry).index;
  document.getElementById("country").selectedIndex=index;
</script>

選択がレンダリングされた後、スクリプトを開始します。

この例はベスト プラクティスではない可能性があることに注意してください。また、すべてのブラウザーで動作するかどうかもわかりません (Opera は動作します)。JQuery、Mootools などの適切なフレームワークを使用できます。

于 2012-12-18T07:21:55.743 に答える
0

属性はselectedJS コードとして自動的に評価されません。目的の国名を変数countryに保存したと仮定すると、代わりにこれを試すことができます。

var country = "Sri Lanka";
var select = document.getElementById('myselect'); //Change to the ID of your select element
for (var i = 0; i < select.options.length; i++){
    if(select.options[i].value == country)
        select.selectedIndex = i;
}
于 2012-12-18T07:24:25.390 に答える