2012-08-10 73 views
0

我有一个拥有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)。

有没有一种方法,我可以做到以下几点:

  1. 商店远在选择原始值(在这种情况下,0307和ABC)在新的选择
  2. 复制到新的长列表的选项和标记为“已选”列表中与之前存在匹配的项目(在本例中为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> 
+0

你可以添加一个具有'id = TopicID'元素的html标记的例子给这个问题吗? – sberry 2012-08-10 10:30:02

+0

谢谢。我加了这个。这是非常标准的选择。只是需要获取初始值,存储它,刷新所有新选项,然后更新选择选项以显示所选项目。易于在这里写,但我不知道如何在实践中做到这一点。 – Alan2 2012-08-10 10:38:30

回答

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); 
} 
+0

你好 - 感谢您的帮助,但它不是我所需要的。我需要更新显示供用户选择的长列表。 sberry想出了一个例子jsFiddle。它很接近,但我没有Go按钮,当用户单击选择下拉菜单时,所有内容都将启动。希望我有道理。 – Alan2 2012-08-10 11:17:50

+0

如果我正确地阅读了您的问题,您需要知道如何更新下拉列表,而不会更改当前选定的值。如果你把你的代码放在我的(评论的地方)之间,你就可以实现这个目标。但是,如果向下拉列表添加元素的代码不起作用,请您详细说明或告诉我们您的意思?我可以看到你试图完全告知我们,但由于我们无法完全理解这些意图,所以缺少一些信息。我的意思是没有进攻:-) – Flater 2012-08-10 11:27:51

+0

嗨,下拉列表的代码运行良好。我遇到问题的地方是,当出现下拉列表时,第一项始终是列表中突出显示的项目。我需要的是该下拉列表,似乎有我的选择框中的项目,我点击突出显示之前。希望这是有道理的。我很难形容。谢谢。 – Alan2 2012-08-10 11:40:07