我有一个空的HTML select元素。 onClick我删除所有选项,执行同步AJAX调用以获取新选项,删除现有选项,最后添加AJAX调用返回的新选项。这按预期工作。当选择框打开时,它会显示已填充的选项。
但是,如果我再次单击选择框时已填充选项,则会打开选择框,显示在功能retrieveValues
删除并添加选项之前存在的选项。
<select id="YearId"></select>
$("#YearId").click(function () { retrieveValues($(this)) });
function retrieveValues(selectBox) {
// This function does an synchronous jQuery Ajax call.
// On success we remove all options from `selectBox` and add new entries.
}
我已将click
处理程序更改为focus
,而这似乎有效,但这是一个很好的解决方案吗?我怀疑它可能是焦点和点击事件之间的竞争条件?