2014-11-14 107 views
0

我在我的视图中有两个ListBox。在这一刻我有它的工作,以便当两个按钮之一被按下时,选定的元素被移动到另一个列表框。 我想除此之外,让它如此,如果其中一个元素是双击它移动到另一个列表框。MVC两个列表框的双击从第一个到第二个添加

这是在视图

<div class="PageRegionRole"> 
      @Html.Label("Available Roles", new { id = "Label1" }) 
      @Html.ListBoxFor(m => m.SelectedRoleID, new SelectList(Model.StaffRoleList, "Value", "Text"), new { id = "LeftBox" }) 
       <div> 
        <input type="button" id="left" value="<<" /> 
        <input type="button" id="right" value=">>" /> 
       </div> 
      @Html.Label("Current Roles", new { id = "Label2" }) 
      @Html.ListBoxFor(model => model.SelectedRoleID, Model.StaffRole, new { id = "RightBox" })    
</div> 

代码这是代码我在js文件它

$(function() { 
    $("#left").bind("click", function() { 
     var options = $("[id*=RightBox] option:selected"); 
     for (var i = 0; i < options.length; i++) { 
      var opt = $(options[i]).clone(); 
      $(options[i]).remove(); 
      $("[id*=LeftBox]").append(opt); 
     } 
    }); 


    $("#right").bind("click", function() { 
     var options = $("[id*=LeftBox] option:selected"); 
     for (var i = 0; i < options.length; i++) { 
      var opt = $(options[i]).clone(); 
      $(options[i]).remove(); 
      $("[id*=RightBox]").append(opt); 
     } 
    }); 
}); 

我一直盯着它有一段时间了。我知道我可能错过了一些明显的东西,但现在让我很烦恼。

任何帮助,将不胜感激谢谢。

+0

只需使用双击事件。 http://api.jquery.com/dblclick/ – 2014-11-14 15:52:27

+0

我知道使用双击事件是要走的路,但我不能让我的生活得到它的工作。这让我很生气。 – DeCreaper 2014-11-14 16:10:50

回答

1

您可以简化现有的脚本

$("#left").click(function() { 
    $('#RightBox').append($('#LeftBox').children(':selected')); 
}); 
$("#right").click(function() { 
    $('#LeftBox').append($('#RightBox').children(':selected')); 
}); 

从一个选择到其他转移的选项,当一个选项被双击

$("#LeftBox").on('dblclick', 'option', function() { 
    $('#RightBox').append($(this)); 
}) 
$("#RightBox").on('dblclick', 'option', function() { 
    $('#LeftBox').append($(this)); 
}) 

还要注意你有2个选择控件绑定到相同的属性,并会生成相同的<select name="SelectedRoleID" ...>,所以这将不会正确回发。你应该将每个绑定到不同的属性(在这种情况下,只需使用由html助手生成的ID)。您也正在使用@Label("Available Roles"),它不会创建真正的标签元素,因为它不与控件关联。使用@LabelFor(m => m.SelectedRoleID)

+0

谢谢。它做到了。 – DeCreaper 2014-11-17 09:15:00

相关问题