这是我的HTML代码
<select id="ddlCountry" placeholder="optional" class="select" title="Select Country">
<option value="0">Select Country</option>
</select>
这是jquery代码.....
$(document).ready(function () {
$('select.select').each(function () {
var title = $(this).attr('title');
if ($('option:selected', this).val() != '') {
title = $('option:selected', this).text();
$(this)
.css({
'z-index': 10,
'opacity': 0,
'-khtml-appearance': 'none'
})
.after('<span class="select">' + title + '</span>')
.change(function () {
val = $('option:selected', this).text();
$(this).next().text(val);
})
}
});
var country = [{
"CountryID": 1,
"CountryName": "Afghanistan"
}, {
"CountryID": 2,
"CountryName": "Albania"
}, {
"CountryID": 3,
"CountryName": "Algeria"
}, {
"CountryID": 4,
"CountryName": "American Samoa"
}, {
"CountryID": 5,
"CountryName": "Andorra"
}, {
"CountryID": 6,
"CountryName": "Angola"
}, {
"CountryID": 7,
"CountryName": "Anguilla"
}, {
"CountryID": 8,
"CountryName": "Antarctica"
}, {
"CountryID": 9,
"CountryName": "Antigua and Barbuda"
}, {
"CountryID": 10,
"CountryName": "Argentina"
}];
$.each(country, function (index, item) {
$('#ddlCountry').append($('<option></option>').val(item.CountryID).html(item.CountryName));
});
$('#ddlCountry').val(2);
});
我已将下拉值设置为2,但默认值始终为Select Country
以下是jsfiddle
答案 0 :(得分:3)
答案 1 :(得分:1)
试试这个
$("#ddlCountry")[0].selectedIndex = 2;
而不是
$('#ddlCountry').val(2);
答案 2 :(得分:0)
您可以将.each
函数放在您将值设置为2
的行的下方:
$('#ddlCountry').val(2); //<---below this one
$('select.select').each(function () {
var title = $(this).attr('title');
if ($('option:selected', this).val() != '') {
title = $('option:selected', this).text();
$(this)
.css({
'z-index': 10,
'opacity': 0,
'-khtml-appearance': 'none'
})
.after('<span class="select">' + title + '</span>')
.change(function () {
val = $('option:selected', this).text();
$(this).next().text(val);
})
}
});
答案 3 :(得分:0)
设置值不会触发change
事件。
您可以添加:
$('#ddlCountry').val(2).trigger('change');