【发布时间】:2018-06-13 18:11:05
【问题描述】:
我有一个引导下拉列表。在那个列表中,我有一堆由数据库填充的项目。
当我进行选择时,我希望这个下拉列表的新值被设置为任何文本,本质上。为此,我有以下代码:
$(document).ready(function () {
$(".dropdown-menu li a").click(function () {
$(this).parents(".dropdown").find('.btn').html($(this).text() + ' <span class="caret"></span>');
$(this).parents(".dropdown").find('.btn').val($(this).text());
});
});
为了测试这一点,我插入了一个警报:
$(document).ready(function () {
$(".dropdown-menu li a").click(function () {
$(this).parents(".dropdown").find('.btn').html($(this).text() + ' <span class="caret"></span>');
$(this).parents(".dropdown").find('.btn').val($(this).text());
var tmp = $(this).parents(".dropdown").find('.btn').val();
alert("Current .btn val is: " + tmp);
});
});
此时,警报显示:
当前 .btn val 为:[期望值]
这就是我想要的。
但是,当以下代码运行时,稍后在不同的脚本中...
var tmp = $("#fixVersionDropdownButton").val();
var tmp1 = $("#fixVersionDropdown").val();
$(document).ready(function () {
$("#chartRefresh").click(function () {
alert("Fix Version Dropdown Button value is: " + tmp);
alert("Fix Version Dropdown value is: " + tmp1)
});
});
生成的警报只是说
修复版本下拉按钮值为:
紧随其后
修复版本下拉值是:
我的下拉菜单代码如下:
<div class="dropdown" style="margin:5px;">
<button class="btn btn-secondary dropdown-toggle" id="fixVersionDropdownButton" type="button" data-toggle="dropdown">
Choose Fix Version
<span class="caret"></span>
</button>
<ul class="dropdown-menu" id="fixVersionDropdown"></ul>
</div>
在我看来,好像我并没有以某种方式实际设置值(尽管根据第一个警报这似乎不太可能......也许我正在以某种方式设置其他东西的值?)或者我不是正确读取值。
我该如何解决这个问题?提前致谢。
【问题讨论】:
-
您试图在元素存在于 DOM 之前读取它们的值。将
tmp和tmp1声明移动到 document.ready 处理程序中,甚至可能在click处理程序中,具体取决于您的要求
标签: javascript jquery twitter-bootstrap