我有一个在 ajax 调用中填充了 jquery 的 select html 元素。一切似乎都很好,但在 IE9 中,选择框只显示文本的第一个字符。
这是重现行为的de jsfiddle:
我知道这里问了同样的问题<select> 只显示所选选项的第一个字符,但该解决方案在我的情况下不起作用。( http://jsfiddle.net/PjDfS/2/ )
任何帮助都感激不尽。
我有一个在 ajax 调用中填充了 jquery 的 select html 元素。一切似乎都很好,但在 IE9 中,选择框只显示文本的第一个字符。
这是重现行为的de jsfiddle:
我知道这里问了同样的问题<select> 只显示所选选项的第一个字符,但该解决方案在我的情况下不起作用。( http://jsfiddle.net/PjDfS/2/ )
任何帮助都感激不尽。
我认为IE9的问题在于
var messageFieldInput = $('#MessageFieldInputTemplate > .messageField-input').clone()
这里 :
var testObj = [];
testObj[0] = {
text: 'description 1',
value: 'value 1'
};
testObj[1] = {
text: 'description 2',
value: 'value 2'
};
$.get('/echo/json', function (data) {
var messageFieldInput = $('#MessageFieldInputTemplate > .messageField-input'); //no .clone()
$('#MessageFieldContainer').append(messageFieldInput);
messageFieldInput.find('.editor-label').text('Label');
$.get('/echo/json', function (data) {
var fieldSelect = messageFieldInput.find('.editor-field > select');
$.each(testObj , function (index, item) {
fieldSelect.append(
$('<option/>', {
'value':item.value,
'text':item.text
})
);
});
});
});
尝试在标记内添加一个option
,select
然后使用脚本将其删除。
看起来这样一个选项的文本以某种方式“分配”了水平空间,并且您将无法获得不再正确显示的 ajax 填充文本。
更新:刚刚尝试过,但它更复杂.. 仅在您保留原始选项之前有效:(