您的下拉菜单会因为
而消失
$('select[name="firmware"]').parent().remove();
您的select 的.parent() 是<div id="formcontainer">,这是您下拉选择的容器;所以你从页面中删除该元素,然后将它们删除。
编辑
如果您在选择其他手机时尝试从固件下拉菜单中删除选项,请使用
$('select[name="firmware"] option').remove();
或
$('select[name="firmware"]').empty();
编辑 2
您似乎也无法从 ajax 调用返回的数据中正确填充固件下拉列表,您可以使用
$('select[name="firmware"]').html(data);
或
$('select[name="firmware"]').append(data);
如果您只是像这样从 ajax 调用返回选项 html 代码
<option value="1.0">1.0</option>
<option value="2.0">2.0</option>
但是 selectBox 插件的演示页面建议更多类似
$('select[name="firmware"]').selectBox('options', {
'Opt Group 1': {
'1': 'Value 1',
'2': 'Value 2',
'3': 'Value 3',
'4': 'Value 4',
'5': 'Value 5'
},
'Opt Group 2': {
'6': 'Value 6',
'7': 'Value 7',
'8': 'Value 8',
'9': 'Value 9',
'10': 'Value 10'
},
'Opt Group 3': {
'11': 'Value 11',
'12': 'Value 12',
'13': 'Value 13',
'14': 'Value 14',
'15': 'Value 15'
}
});
因此,如果您以格式返回数据
{
'Opt Group 1': {
'1': 'Value 1',
'2': 'Value 2',
'3': 'Value 3',
'4': 'Value 4',
'5': 'Value 5'
}
}
然后你可以$('select[name="firmware"]').selectBox('options', data);
结论
基本上,如果您的 findFormware.php 代码只返回选项 html 代码,而没有其他类似的代码
<option value="1.0">1.0</option>
<option value="2.0">2.0</option>
您的手机下拉菜单的 JavaScript 代码应该是
$('select[name="phone"]').change(function(){
var phoneId = this.value;
$('select[name="firmware"]').empty();
$.ajax({
url: "findFirmware.php?phone=" + phoneId,
success: function(data) {
$('select[name="firmware"]').append(data);
}
});
});