【发布时间】:2015-04-23 15:58:36
【问题描述】:
我有一个非常简单的选择框:
<select id="collectorMainsInspEmissSelect">
<option></option>
</select>
它有一个默认选项,不显示任何内容,也没有任何价值。
每当单击按钮时:
<a data-role="button" style="padding-left:0px; padding-right:0px; margin-top:8px;" id="collectorMainsInspAddEmissButton" onclick="main.CollectorMains.addEmiss()">Add Emiss</a>
它运行这个函数:
function addEmiss() {
var last = $("#collectorMainsInspEmissSelect option:last-child").val();
if ($.isNumeric(last)) {
$("#collectorMainsInspEmissSelect option:last").after("<option value=" + (parseInt(last) + 1) + ">" + (parseInt(last) + 1) + "</option>");
$("#collectorMainsInspEmissSelect option:last").prop('selected', true);
}
else {
$("#collectorMainsInspEmissSelect option:last").after("<option value=1>1</option>");
$("#collectorMainsInspEmissSelect option:last").prop('selected', true);
}
console.log($("#collectorMainsInspEmissSelect").val());
}
它的作用是检查该选择中的最后一个选项。如果它是空白的,它会创建一个值和文本为 1 的新选项。否则,它会添加一个新选项,该选项是前一个选项递增的。
那部分工作得很好。添加了新选项。
接下来,我将选择的值设置为最后一个选项。我希望它能够直观地更改选择框以显示最后一个选项,并且我希望该值也是该选项。
在后台,值正在发生变化。然而,在视觉上,它不是。
我有console.log 表明每次单击按钮时值都会增加。
这是我想要它做的一个 jsfiddle:https://jsfiddle.net/w5r93t3c/1/
您会注意到它在 jsfiddle 中运行良好。这也是我的问题。我不明白为什么我的 Jquery 移动应用程序中的选择没有在视觉上更新。我需要以某种方式刷新选择吗?
【问题讨论】:
-
已解决。在末尾添加
$("#collectorMainsInspEmissSelect").selectmenu('refresh', true); -
您应该对您的问题发布正式答案并接受它,而不仅仅是评论。
标签: jquery jquery-mobile