【发布时间】:2014-01-07 12:28:26
【问题描述】:
我有两个多选列表。我正在尝试实现这样的功能,用户可以将项目从左侧列表添加或删除到右侧列表。这是我的代码
html --
<select id="distriList" name="distriList" multiple="multiple" style="width: 150px; height: 70px; margin: 0px 2px 0px 3px;">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
<a href="javascript:void(0);" id="addPop">Add</a>
<a href="javascript:void(0);" id="removePop">Remove</a>
<select id="selectDistriList" name="selectDistriList" multiple="multiple" style="width: 150px; height: 70px; margin: 0px 2px 0px 3px;">
<option value="E">E</option>
<option value="F">F</option>
<option value="G">G</option>
<option value="H">H</option>
</select>
和 JS -
$('#addPop').click(function() {
if ($('#distriList option:selected').val() != null) {
$('#distriList option:selected').remove().appendTo('#selectDistriList');
$("#distriList").attr('selectedIndex','-1').find("option:selected").removeAttr("selected");
$("#selectDistriList").attr('selectedIndex', '-1').find("option:selected").removeAttr("selected");
} else {
alert("Before add please select any position.");
}
});
$('#removePop').click(function() {
if ($('#selectDistriList option:selected').val() != null) {
$('#selectDistriList option:selected').remove().appendTo('#distriList');
$("#selectDistriList").attr('selectedIndex', '-1').find("option:selected").removeAttr("selected");
$("#distriList").attr('selectedIndex', '-1').find("option:selected").removeAttr("selected");
$("#distriList").attr('selectedIndex', '-1').addAttr("selected");
} else {
alert("Before remove please select any position.");
}
});
也检查JSFiddle
一切正常,但我的问题是当我从左侧选择任何项目并将其添加到右侧时,添加的项目没有在右侧列表中被选中。我在删除时也面临同样的问题。
预期结果:添加/删除执行时,应在列表中选择添加/删除的项目
有什么帮助吗??
【问题讨论】:
标签: javascript jquery html