我的表单有一个询问用户所在国家/地区的列表框,但我只想通过 AJAX 调用填充列表框,如果该框尚未显示用户所在的国家/地区。最初,列表框只包含一个国家 - 从服务器上的 ip-to-country 查找返回的国家。
似乎列表框的默认操作发生在我的事件操作之前。我希望我的操作首先发生,这样当用户单击列表框时,该框会在框打开之前预先填充从服务器上拉下来的国家/地区。
感谢您的任何建议。
$().ready(function() {
$('select#selCountry').one('click', function() {
var selCountry = $('select#selCountry');
var selected = $(selCountry).val();
selCountry.html('<option value="">Loading...</option>');
$.getJSON('/AjaxHelpers/CountryList', function(data) {
if (data.length) {
var options = '';
for (var i = 0; i < data.length; i++) {
var key = data[i].Key;
var val = data[i].Value;
options += '<option value="' + key + '"';
if (key == selected) {
options += ' selected="selected"';
}
options += '>' + val + '</option>';
}
selCountry.html(options);
}
else {
selCountry.html('<option value="">Failed.</option>');
}
});
});
});
HTML:
<div>
<select id="selCountry" name="CountryCode"><option value="GB">United Kingdom</option>