设置选定的选项集中JQuery

时间:2013-06-25 14:23:36

标签: jquery

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

/* 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中看到了),但是列表保持不变,选项'Fixed'保持第一个,当我点击时在列表中,没有选择以下选项(尽管在Inspect Element中它有selected='selected')。 这就是它对ajax响应的看法: enter image description here

请任何人帮忙。

1 个答案:

答案 0 :(得分: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);