我有一个拥有50+行的TopIDID屏幕。在该屏幕上,我有一个可能有大量行的 网格。作为替代有每一行 一个有很多选择我填充我的选择只有一个,如下项目:如何使用jQuery标记基于初始值选择的<select>选项?
<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>
当这些行的用户点击选择,第一次我再更改内容的选择和复制从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)。
有没有一种方法,我可以做到以下几点:
- 商店远在选择原始值(在这种情况下,0307和ABC)在新的选择
- 复制到新的长列表的选项和标记为“已选”列表中与之前存在匹配的项目(在本例中为0307和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>
你可以添加一个具有'id = TopicID'元素的html标记的例子给这个问题吗? – sberry 2012-08-10 10:30:02
谢谢。我加了这个。这是非常标准的选择。只是需要获取初始值,存储它,刷新所有新选项,然后更新选择选项以显示所选项目。易于在这里写,但我不知道如何在实践中做到这一点。 – Alan2 2012-08-10 10:38:30