我有一个有50多行的屏幕,可以使用TopidID。在那个屏幕上,我有一个 可能具有大量行的网格。作为每一行的替代品 我有很多选择,只用下面的一项来填充我的选择:
<td>
<select title="X" data-clicked="N" data-list="N" id="input_TempRowKey_73" name="rowKey_73" class="select-topic">
<option value="0307">ABC</option>
</select>
</td>
当用户第一次点击任何这些行选择时,我会更改selectid的内容并复制TopidID <select>
中的许多选项。代码有效并且操作很快发生,因此用户不知道添加了新选项。
.on('click', '.select-topic', function () {
if ($(this).attr('data-list') == "N") {
$(this).attr('data-list', 'Y')
var topicSelectHtml = $('#TopicID').clone().find("optgroup:first").remove().end().find("option[value$='**']").remove().end().html();
$(this).html(topicSelectHtml);
$(this).attr('data-clicked', 'Y')
}
return false;
})
但是我有问题。当用户单击时,将显示新列表和原始列表 不再选择所选的值(在本例中为ABC)。
有没有办法可以做到以下几点:
这是TopicID的格式。这是非常标准的代码:
<select id="TopicID">
<optgroup label="Admin">
<option value="0000">All Topics</option>
</optgroup>
<optgroup label="X">
<option value="0307">ABC</option>
<option value="0308">DEF</option>
</optgroup>
</select>
答案 0 :(得分:0)
实际上非常简单(你的代码比你还需要添加的代码更难):
function dropdownlistprocessing () {
var selectedval = $("#mydropdown").val();
// now process your dropdownlist
$("#mydropdown").val(selectedval);
}
修改:如您所见,如果您使用.val()
,则获取所选值。如果您使用.val(foo)
传递值,则会在下拉列表中设置选择项。
<强> EDIT2 强> 根据下面的评论,我认为你想要这个吗?
function dropdownlistprocessing () {
var selectedval = $("#mydropdown_A").val();
// now process your dropdownlist
$("#mydropdown_B").val(selectedval);
}