不久前,我发布了这个问题,询问如何 根据先前的选择从 mysql获取 JSON 数据到 jQuery 下拉列表
好吧,这里的人很棒,我找到了解决方案。我现在遇到的问题是建议的解决方案在我的生产环境中不起作用,但在我的测试中起作用。
为了防止重复主菜,我正在使用 jQuery empty()
,问题是使用empty()
似乎也阻止了我选择第一个选项。
这是从 JSON 生成选项的函数
function(data){
var select = $('[name="employee_manager"]');
select.empty();
select.append(new Option(ucfirst('No Manager'),'100'));
$.each(data, function(index, array) {
select.append(new Option(ucfirst(array['first_name'])+ " "+ucfirst(array['last_name']),array['id']));
});
这是不会阻止选择的 empty() 的替代方法吗?
编辑如果动态输入的项目少于两个,这似乎只是一个问题
编辑 2这是 HTML。empty()
如果存在,我似乎无法选择第一个选项
<label for="manager">Reports To</label>
<select name="employee_manager">
<option value="1">Please Select Employee Role</option>
<option value="2">John Doe</option>
<option value="3">James Smith</option>
</select>
编辑 3
看起来空类正在为我的选择添加一个跨度
<div class="selector">
<span style="-moz-user-select: none;">Jane Smith</span>
<select name="employee_manager" style="opacity: 0;">
<option value="100">No Manager</option>
</select>
</div>
编辑 4
好的,这是一个显示问题的 jsfiddle。我无法正确加载 JSON 数据,但如果您尝试单击列表中的第一项,您仍然可以看到问题。似乎这是uniformjs的问题,好像uniform被移除了这不是问题
http://jsfiddle.net/BandonRandon/xXUfp/1/