我通过jquery ajax方法为我的下拉列表生成选项,用db填充它。
$.ajax({
type: "POST",
url: pageUrl + '/FillAssignee',
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
for (var i = 0; i < response.d.length; i++) {
$('#SelectAssignee').append($("<option></option>").val(response.d[i]['Value']).html(response.d[i]['Text']));
}
if (response.d.length > 0)
{
$('#SelectAssignee>option:eq(1)').attr('selected', true);
alert($('#SelectAssignee').val()); //this line giving me correct value but value not showing in dropdown as selected in ie
}
}
});
它的工作正常。唯一的问题是默认情况下没有选择第一个值。所以我使用了很多选项
1. $('#SelectAssignee').val();
2. $('#SelectAssignee option:first').attr('selected','selected');
3. $('#SelectAssignee option:first').prop('selected',true);
如何让它发挥作用请帮助我。
提前致谢。
答案 0 :(得分:1)
尝试这样的事情
var selObj = document.getElementById('SelectAssignee');
selObj.selectedIndex = 0;
答案 1 :(得分:0)
您的逻辑是说您的目标是选择菜单中的FIRST元素,但是,您要将新选项添加到选择输入的END。你需要将.append更改为.prepend,或者在将selected属性设置为true时定位最后一个选项
答案 2 :(得分:0)
尝试将设置设置为属性而不是属性。
$('#SelectAssignee').append($("<option />", { value: response.d[i]['Value'], html: response.d[i]['Text'] }));
答案 3 :(得分:0)
请你试试下面的解决方案。
在for循环之后,只需添加此
if (response.d.length > 0) {
$('#SelectAssignee>option:eq(1)').attr('selected', true);
}
答案 4 :(得分:0)
我最好的猜测是这应该有效。虽然,这看起来像是一个肮脏的黑客,但有一次我不得不诉诸于此并且它起作用。
setTimeout( function() {
$('#SelectAssignee option:first').prop('selected', true);
$('#SelectAssignee').trigger('change');
}, 1000 );
尝试在for循环之后将此代码块放入成功回调中。
答案 5 :(得分:0)
在for循环之后,尝试以下条件
if (response.d.length > 0) { $('#SelectAssignee>option:eq(0)').attr('selected', 'selected');}
答案 6 :(得分:0)
尝试将值明确设置为第一个选项
的值$('#SelectAssignee').val(response.d[0]['Value']);