如何使用 javascript 设置初始下拉值?
How to set initial dropdown value using javascript?
我正在尝试使用本地存储中的值 select 在下拉列表中 select 编辑值。 html 的下拉代码如下所示。
<div>
<label class="ui teal big label"><b>Project Members</b></label>
<div class="ui selection dropdown">
<i class="user icon"></i>
<input type="hidden" name="member">
<i class="dropdown icon"></i>
<div class="text">Select Project Member</div>
<div id="memberMenu" class="menu">
<?php
foreach ($MEMBERS as $projectmember) { ?>
<div id="<?php echo $projectmember['id']; ?>" class="item"><?php echo $projectmember['name'] . " " . $projectmember['surname'] ?></div>
<?php } ?>
</div>
</div>
<button onclick="applyProjectMemberFilterToGeneralProjectHours()" name="applyFilter2" class="ui button large primary">Apply Filter</button>
</div>
我正在尝试像这样在下拉列表中设置值 selected。但这是行不通的。
var memId = localStorage.getItem("memberFilters");
if (memId != null && memId != "" && memId != "null") {
$(".ui.selection.dropdown select").val(memId);
}
您应该使用 jQuery .attr() 来设置和获取任何 none 表单标签的值。然后使用 .html() 或 .text() 获取不是属性
的 div 标签的正常内容
semantic-ui docs(我发现)仅限于 API 方法,因此您可以调用一个非常简单的“设置值”api。
下面是那个调用的等价物。
首先,将您的 id=
更改为 data-value
以匹配示例(可能不是必需的,但如果手动更改它可能会使您的“下拉菜单”设置正确的值)。我还给外部 div 一个 id memberDropdown
以便于参考。
$('.ui.dropdown').dropdown();
$("#btn").click(function() {
// the data-value to find, in your original code, from localstorage
var id = 2;
// find the drop down item
var item = $("#memberDropdown .menu>[data-value=" + id + "]");
// set the hidden input value and the displayed text
$("#memberDropdown [name=member]").val(id);
$("#memberDropdown .text").text(item.text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css">
<div>
<div class="ui selection dropdown" id="memberDropdown">
<i class="user icon"></i>
<input type="hidden" name="member">
<i class="dropdown icon"></i>
<div class="text">Select Project Member</div>
<div id="memberMenu" class="menu">
<div data-value="1" class="item">First</div>
<div data-value="2" class="item">Second</div>
</div>
</div>
</div>
<button id='btn' type='button'>click me</button>
我正在尝试使用本地存储中的值 select 在下拉列表中 select 编辑值。 html 的下拉代码如下所示。
<div>
<label class="ui teal big label"><b>Project Members</b></label>
<div class="ui selection dropdown">
<i class="user icon"></i>
<input type="hidden" name="member">
<i class="dropdown icon"></i>
<div class="text">Select Project Member</div>
<div id="memberMenu" class="menu">
<?php
foreach ($MEMBERS as $projectmember) { ?>
<div id="<?php echo $projectmember['id']; ?>" class="item"><?php echo $projectmember['name'] . " " . $projectmember['surname'] ?></div>
<?php } ?>
</div>
</div>
<button onclick="applyProjectMemberFilterToGeneralProjectHours()" name="applyFilter2" class="ui button large primary">Apply Filter</button>
</div>
我正在尝试像这样在下拉列表中设置值 selected。但这是行不通的。
var memId = localStorage.getItem("memberFilters");
if (memId != null && memId != "" && memId != "null") {
$(".ui.selection.dropdown select").val(memId);
}
您应该使用 jQuery .attr() 来设置和获取任何 none 表单标签的值。然后使用 .html() 或 .text() 获取不是属性
的 div 标签的正常内容semantic-ui docs(我发现)仅限于 API 方法,因此您可以调用一个非常简单的“设置值”api。
下面是那个调用的等价物。
首先,将您的 id=
更改为 data-value
以匹配示例(可能不是必需的,但如果手动更改它可能会使您的“下拉菜单”设置正确的值)。我还给外部 div 一个 id memberDropdown
以便于参考。
$('.ui.dropdown').dropdown();
$("#btn").click(function() {
// the data-value to find, in your original code, from localstorage
var id = 2;
// find the drop down item
var item = $("#memberDropdown .menu>[data-value=" + id + "]");
// set the hidden input value and the displayed text
$("#memberDropdown [name=member]").val(id);
$("#memberDropdown .text").text(item.text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css">
<div>
<div class="ui selection dropdown" id="memberDropdown">
<i class="user icon"></i>
<input type="hidden" name="member">
<i class="dropdown icon"></i>
<div class="text">Select Project Member</div>
<div id="memberMenu" class="menu">
<div data-value="1" class="item">First</div>
<div data-value="2" class="item">Second</div>
</div>
</div>
</div>
<button id='btn' type='button'>click me</button>