Framework7 Smart Select 显示所选项目
Framework7 Smart Select show selected item
我有这个小聪明select:
<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>
当用户 select 一个项目时,我创建了一个 cookie 并将值写入其中。重新加载或关闭页面后,我在 cookie 中读取了一个 select 项目。这样可行。但是,我总是 "Please choose" 条目而不是 selected 项目。但是当我点击列表时,正确的项目是 select 但是然后关闭列表我又看到了 请选择。
这就是我 select 值的方式:
$$("#projects").val(getCookie("timerTasks"));
嗯,我运行之前就入过这个。从 cookie 中选择值后,您必须更新 item-title
class:
详情:
// 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,我想知道为什么它还没有修复。
@tinyCoder 几乎是正确的,除了你需要更新 .item-after
,而不是 .item-title
。 .item-title
是智能select的"label",.item-after
显示selected值。
另外,由于.html()
会渲染HTML,而我们只需要文字,我觉得用.text()
更合适。所以,我的单行看起来像这样:
$$("#projects").val(getCookie("timerTasks")).parent().find('.item-after').text($$("#projects").find("option:selected").text());
Framework7 v1.6.5(2017 年 9 月)
对于此时需要此答案的人,find("option:selected")
不再适用于此目的。请改用 find("option:checked")
。
最终代码为
$$("#projects").val(getCookie("timerTasks")).parent().find('.item-title').html($$("#projects").find("option:checked").text());
我有这个小聪明select:
<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>
当用户 select 一个项目时,我创建了一个 cookie 并将值写入其中。重新加载或关闭页面后,我在 cookie 中读取了一个 select 项目。这样可行。但是,我总是 "Please choose" 条目而不是 selected 项目。但是当我点击列表时,正确的项目是 select 但是然后关闭列表我又看到了 请选择。 这就是我 select 值的方式:
$$("#projects").val(getCookie("timerTasks"));
嗯,我运行之前就入过这个。从 cookie 中选择值后,您必须更新 item-title
class:
详情:
// 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,我想知道为什么它还没有修复。
@tinyCoder 几乎是正确的,除了你需要更新 .item-after
,而不是 .item-title
。 .item-title
是智能select的"label",.item-after
显示selected值。
另外,由于.html()
会渲染HTML,而我们只需要文字,我觉得用.text()
更合适。所以,我的单行看起来像这样:
$$("#projects").val(getCookie("timerTasks")).parent().find('.item-after').text($$("#projects").find("option:selected").text());
Framework7 v1.6.5(2017 年 9 月)
对于此时需要此答案的人,find("option:selected")
不再适用于此目的。请改用 find("option:checked")
。
最终代码为
$$("#projects").val(getCookie("timerTasks")).parent().find('.item-title').html($$("#projects").find("option:checked").text());