我有一个select a html元素,在ajax调用中填充了jquery。一切似乎都运行正常,但在IE9中,选择框只显示文本的第一个字符。
这是de jsfiddle再现行为:
我知道在<select> only shows first char of selected option问了同样的问题,但解决方案在我的案例中不起作用。 (http://jsfiddle.net/PjDfS/2/)
非常感谢任何帮助。
答案 0 :(得分:1)
最后,工作代码:
我做了什么?最后,我回到旧的答案,并稍微改变了我的第一个方法。
要更清楚,请将原始选择保留为“display:none”,最后删除该属性。
答案 1 :(得分:0)
我认为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
})
);
});
});
});
答案 2 :(得分:0)
尝试在标记内的option
内添加一个select
,然后使用脚本将其删除。
看起来这样一个选项的文本以某种方式'分配'水平空间,你将无法获得更长时间正确显示的ajax填充文本。
更新:刚试过,但它更复杂..只有在保持原始选项到位之后才能工作:(
答案 3 :(得分:0)