2014-11-14 82 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

相關問題