我需要从列表中设置一个选项,在下拉列表中选中并显示。 我有这个代码:
/* 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响应的看法:
请任何人帮忙。
答案 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);