0

我需要从列表中设置一个选项,在下拉列表中选中并显示。我有这个代码:

/* some js....*/
........
$.ajax({
    type: "POST", 
    url: url,
    data : mydata,
    success: function(data) {
        $('#format_type option').removeAttr('selected')
        $('#format_type option:eq('+data+')').attr('selected', true);
        $('#format_type option:selected').focus();
    }
});

..............

html代码:

echo "<select name='format_type' id='format_type'>";
echo "<option value='1'>Fixed</toption>";
echo "<option value='2'>Year Digit 4[Y---]</toption>";
echo "<option value='3'>Year Digit 3[-Y--]</toption>";
echo "<option value='4'>Year Digit 2[--Y-]</toption>";
echo "<option value='5'>Year Digit 1[---Y]</toption>";
echo "<option value='6'>Month Digit 2[M-]</toption>";
echo "<option value='7'>Month Digit 1[-M]</toption>";
.............

jquery 代码运行得很好,在 ajax 响应之后,选择了请求的选项(我在 Inspect Element 中看到了),但是列表保持不变,选项“固定”保持在第一位,当我单击列表时,以下选项均未选中(尽管在 Inspect Element 中具有selected='selected')。这是它在 ajax 响应后的样子: 在此处输入图像描述

请任何人帮助。

4

1 回答 1

5

假设data给出了期权的指数;使用prop代替attr可能会有所帮助

 $('#format_type option:eq('+data+')').prop('selected', true);

代替

$('#format_type option').removeAttr('selected')
$('#format_type option:eq('+data+')').attr('selected', true);
于 2013-06-25T14:26:24.383 回答