したがって、2つの単純なselectboxコントロール(MVCでは@ Html.ListBoxFor)があります。
ユーザーが左側の選択ボックスから選択し、選択したアイテムを右側に移動できるようにします。これはうまく機能します(http://jsfiddle.net/tekguy/NJGzu/の例を参照してください) 。
しかし、どうすれば正しいリストボックスのすべてをMVCに渡すことができますか?
この問題は、ユーザーが誤って右側のボックスの1つの項目をクリックした場合に発生し、他のすべての項目が選択解除され、それがコントローラーに返される唯一の値になります。
これを改善する方法について何かアイデアはありますか?私はjavascriptを使用して、フォーム投稿の適切なテキストボックス内のすべてを選択することを考えていました。しかし、この問題を解決する他の方法はありますか?
HTMLコード:
<select id="list1" multiple>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<input type="button" value=">>" id="moveRight" />
<input type="button" value="<<" id="moveLeft" />
<select id="list2" multiple>
<option value="4">Option 4</option>
</select>
JAVA-スクリプトコード:
$( function() {
$('#moveRight').click(function(){
$('#list1 option:selected').each(function(){
$(this).remove().appendTo("#list2");
});
});
$('#moveLeft').click(function(){
$('#list2 option:selected').each(function(){
$(this).remove().appendTo("#list1");
});
});
});