所以我有2个简单的selectbox控件(MVC中的@ Html.ListBoxFor),
我允许用户从左侧选择框中进行选择并将所选项目向右移动,这非常有效(请参阅我的示例:http://jsfiddle.net/tekguy/NJGzu/)
但是如何将右侧列表框中的所有内容传递给MVC?
如果用户意外点击右侧框中的一个项目,其他所有内容都未被选中,则会出现问题,这将是唯一传递回控制器的值。
有关如何解决此问题的任何想法?我正在考虑使用javascript在表单帖子的右侧文本框中选择所有内容。但还有其他方法可以解决这个问题吗?
HTML CODE:
<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-SCRIPT CODE:
$( 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");
});
});
});
答案 0 :(得分:0)
我需要一些类似于此的项目。我发现只有选中的选定项目被回发。 我按照你的建议使用了javascript。这样的事情对我有用。
$("#MassUpdateForm").submit(function() {
$("#select_right").children("option").each(function() {
this.selected = true;
});
});
答案 1 :(得分:0)
您无需循环以追加元素。一个特定的元素只能在dom中存在一次..所以除非你克隆并附加..所以不需要先删除元素。然后,您可以在表单
的提交事件中更改所选的所有选项$(function () {
$('#moveRight').click(function () {
$('#list1 option:selected').appendTo("#list2"); // this will move all selected options to right side
});
$('#moveLeft').click(function () {
$('#list2 option:selected').appendTo("#list1"); // this will move all selected options to left side
});
$('yourform').on('submit', function () {
$('#list2 option').prop('selected', true); // set all options on right side to selected
});
});