我在div中有三个selectmenu个对象。第一个加载页面。当我在第一个中选择某个东西时,该值用于填充第二个。在第二个中选择填充第三个。
在我将新位放入字段之前,我需要清空旧位。
似乎没有工作 - 所以我似乎做了一些愚蠢的事情。没有错误消息..只是没有清空。
firstSelect = $("#first");
$.ajax({
populate 'first'
});
secondSelect = $("#second");
firstSelect.selectmenu({
change: function( event, data ) {
secondSelect.empty();
getSeconds(data.item.value);
}
}).selectmenu("menuWidget").addClass('overflow');
thirdSelect = $("third");
secondSelect.selectmenu({
change: function( event, data ) {
thirdSelect.empty();
getThirds(data.item.value);
}
}).selectmenu( "menuWidget" ).addClass('overflow');
<body>
<div>
<select id='first'></select>
<select id='second'></select>
<select id='third'></select>
</div>
</body>
我还试过$("#selectId").html("");
尝试使用$("#selectid").selectmenu("refresh")
和$("#selectid").empty().selectmenu("refresh")
- 当我尝试打开列表(点击它)时,两者都给我这个错误:
jquery-ui.min.js:11 Uncaught TypeError:无法读取属性&#39; index&#39;未定义的 在HTMLUListElement.focus(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:25160) at t。(匿名函数)。(匿名函数)._ trigger(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:11090) at t。(匿名函数)。(匿名函数).focus(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:7:27841) at t。(匿名函数)。(匿名函数).focus(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:4499) at t。(匿名函数)。(匿名函数).open(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:26239) at t。(匿名函数)。(匿名函数).open(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:4499) at t。(匿名函数)。(匿名函数)._ toggle(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:28018) at t。(匿名函数)。(匿名函数)._ toggle(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:4499) at t。(匿名函数)。(匿名函数).click(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:11:28578) 在HTMLSpanElement.r(http://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js:6:9786) 专注@ jquery-ui.min.js:11 _trigger @jquery-ui.min.js:6 专注@ jquery-ui.min.js:7 (匿名)@ jquery-ui.min.js:6 打开@ jquery-ui.min.js:11 (匿名)@ jquery-ui.min.js:6 _toggle @jquery-ui.min.js:11 (匿名)@ jquery-ui.min.js:6 点击@ jquery-ui.min.js:11 r @ jquery-ui.min.js:6 dispatch @ jquery.min.js:3 q.handle @jquery.min.js:3
答案 0 :(得分:2)
当您致电<option>
时,它会从基础<select>
元素中删除refresh
元素,但不会自动更新selectmenu插件。您需要使用secondSelect.empty().selectmenu('refresh');
选项手动执行此操作,如下所示:
$
我还建议您坚持使用jQuery命名标准,并在包含jQuery对象的变量的开头放置一个$firstSelect
字符,例如。 $secondSelect
,{{1}}等等。