select元素仅显示第一个char

时间:2012-08-21 16:46:53

标签: jquery html internet-explorer-9

我有一个select a html元素,在ajax调用中填充了jquery。一切似乎都运行正常,但在IE9中,选择框只显示文本的第一个字符。

这是de jsfiddle再现行为:

http://jsfiddle.net/PjDfS/

我知道在<select> only shows first char of selected option问了同样的问题,但解决方案在我的案例中不起作用。 (http://jsfiddle.net/PjDfS/2/

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:1)

最后,工作代码:

http://jsfiddle.net/PjDfS/5/

我做了什么?最后,我回到旧的答案,并稍微改变了我的第一个方法。

要更清楚,请将原始选择保留为“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)

我不知道为什么,但这种方式似乎有效:

http://jsfiddle.net/PjDfS/4/

另外,我不确定代码是否完全等效。无论如何它到目前为止......

相关问题