我有这个小聪明的选择:
<div class="list-block">
<ul>
<li>
<a href="#" class="item-link smart-select" data-back-on-select="true" data-open-in="popup">
<select name="projects" id="projects">
<option value="0" selected>Please choose...</option>
<option value="1" >House build</option>
</select>
<div class="item-content">
<div class="item-inner">
<div class="item-title">Aufträge</div>
</div>
</div>
</a>
</li>
</ul>
</div>
当用户选择一个项目时,我创建了一个cookie并在其中写入了值。重新加载或关闭我在cookie中读取的页面后,选择该项目。这样可行。但是,我总是“请选择”条目而不是所选项目。但是,当我点击列表时,选择正确的项目,然后关闭我再次看到的列表请选择。 这就是我选择值的方法:
$$("#projects").val(getCookie("timerTasks"));
答案 0 :(得分:2)
@tinyCoder几乎是正确的,除非您需要更新.item-after
,而不是.item-title
。 .item-title
是智能选择的“标签”,.item-after
显示所选值。
此外,由于.html()
将呈现HTML,而我们只需要文本,因此我认为使用.text()
更合适。所以,我的单行看起来像这样:
$$("#projects").val(getCookie("timerTasks")).parent().find('.item-after').text($$("#projects").find("option:selected").text());
Framework7 v1.6.5(2017年9月。)
答案 1 :(得分:1)
好吧,我之前碰到过这个。从cookie中选择值后,您必须更新item-title
类:
详情:
// Select your value
$$("#projects").val(getCookie("timerTasks"));
// Selected value text
var selected_text = $$("#projects").find("option:selected").text();
// Change item-title
$$("#projects").parent().find('.item-title').html(selected_text);
一行:
$$("#projects").val(getCookie("timerTasks")).parent().find('.item-title').html($$("#projects").find("option:selected").text());
你可以在那里看到this is a common issue,我想知道它为什么还没有修复。
答案 2 :(得分:1)
对于此时需要此答案的人,find("option:selected")
不再为此目的而工作。请改用find("option:checked")
。
最终代码为
$$("#projects").val(getCookie("timerTasks")).parent().find('.item-title').html($$("#projects").find("option:checked").text());