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

selected属性不会自动评估为 JS 代码。假设您已将所需的国家/地区名称存储在变量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 回答