我想使用表单选择字段供用户选择他们的居住国家/地区,其中显示基于IP的国家/地区作为默认值(加上旁边的IP地址);
位置信息(ipinfodb.com)正在运行。我正在将“country”和“ip”传递给该函数,该函数应修改select-field和ip adress
问题: IP地址有效,但选择字段仅在我点击刷新后更新。
有人可以告诉我为什么吗?
这是代码:
HTML
<select name="setup_changeCountry" id="setup_changeCountry">
<option value="AL-Albania">Albanien</option>
<option value="AD-Andorra">Andorra</option>
<option value="AM-Armenia">Armenien</option>
<option value="AU-Australia">Australien</option>
...
</select>
<div class="setup_IPInfo">
<span>Your IP</span>
<span class="ipAdress"> -- ip --</span>
</div>
使用Javascript / Jquery的
function morph(country,ip) >> passed from function, called on DOMContentLoaded
{
var ipAdress = ip;
$('.ipAdress').text(ipAdress);
var countryForm = country;
$('#setup_changeCountry option').each(function()
{
if ($(this).val().substr(0,2) == countryForm)
{
$(this).attr('selected', "true");
}
});
}
感谢您提供有关如何解决此问题的任何线索。
频繁
答案 0 :(得分:0)
选择=“已选择”未选中=“真”,因此:
$(this).attr('selected', 'selected');
(您也可以跳过var ipAdress
并在下一行中传递ip
)
答案 1 :(得分:0)
你可以极大地简化循环,让jQuery完成工作:
$("#setup_changeCountry option[value$='" + country + "']").attr('selected', true);
确保:
答案 2 :(得分:0)
你应该使用:
$(document).ready(name_of_function);
通过这种方式,您可以运行该功能来选择国家/地区。您可以使用此功能:
function morph(country,ip){
var ipAdress = ip;
$('.ipAdress').text(ipAdress);
var countryForm = country;
$("#setup_changeCountry option[value$='" + country + "']").attr('selected', true);
}