从ListBox获取SelectList对象并放入HTML选择列表

时间:2012-04-17 13:16:54

标签: javascript jquery html asp.net-mvc

假设我有一个ListBox,其中填充了名称值对SelectList(myUsers,“Key”,“Value”):

@Html.ListBox("ListReviewers", (SelectList)ViewBag.ListOFReviewers, new { style = "width:120px;" }) 

我想双击此ListBox中的一个选项,并将其放在SelectionList中,如下所示:

<div class="selectedEmployees">
  <select class="selectionList" multiple="multiple" name="AssignedReviewer"    style="width:120px;">
     <!--x.UserID, x.FirstName + " " + x.LastName) -->
     <option value=""></option>
  </select>
</div>

将此集合放入上面后,我想将所有值存储在另一个SelectionList集合中供以后使用。

以下是我的jQuery代码的开头:

<script type="text/javascript">

$('#ListReviewers').dblclick(function (i, selected) {
    //double click on this value of listbox of type SelectList(myUsers, "Key", "Value")

    //store this value and text
    var value = $(this).val;
    //var empName = $(this).data[0];
    var empName = $(selected).text();

    alert(empName);

    //append an option element <option value=""></option>
    $('.selectionList').append('<option id="' + value + '">' + empName + '</option>');

});

我可以获取dblclicked集合对象的值,但不能获取集合对象的文本。有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

尝试将您的活动附加到选择内的option。然后,您可以使用this访问其属性。

$('#ListReviewers option').dblclick(function () {
    var value = $(this).val();
    var empName = $(this).text();

    $('.selectionList').append('<option id="' + value + '">' + empName + '</option>');
});

或者,您可以使用clone()append()option从一个select移至另一个$('#ListReviewers option').dblclick(function () { var $newOptions = $(this).clone(false); $(this).remove(); $('.selectionList').append($newOption); }); 。这将节省您不必担心附加重复选项。

{{1}}