0

假设我有一个 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 集合对象的值,但不能获取集合对象的文本。有一个更好的方法吗?

4

1 回答 1

0

尝试将您的事件附加到option选择本身内。然后,您可以使用this它来访问它的属性。

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

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

或者,您可以使用clone()和从一个append()移动到另一个。这将使您不必担心附加的重复选项。optionselect

$('#ListReviewers option').dblclick(function () {
    var $newOptions = $(this).clone(false);
    $(this).remove();

    $('.selectionList').append($newOption);
});
于 2012-04-17T13:26:39.617 回答