我需要从列表中设置一个选项,在下拉列表中选中并显示.我有这个代码:
/* 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();
}
});
..............
Run Code Online (Sandbox Code Playgroud)
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>";
.............
Run Code Online (Sandbox Code Playgroud)
jquery代码确实运行得很好,在ajax响应之后,选择了所请求的选项(我在Inspect Element中看到了),但是列表保持原样,选项'Fixed'保持第一,当我点击列表时,没有选择以下选项(尽管在Inspect Element它有selected='selected').这就是它对ajax响应的看法:

请任何人帮忙.
假设data给出了期权的指数; 使用prop而不是attr可能帮助
$('#format_type option:eq('+data+')').prop('selected', true);
Run Code Online (Sandbox Code Playgroud)
代替
$('#format_type option').removeAttr('selected')
$('#format_type option:eq('+data+')').attr('selected', true);
Run Code Online (Sandbox Code Playgroud)