gpt4 book ai didi

javascript - 如何使用 jquery 将所选元素从一个下拉组列表 (optgroup) 移动到另一个下拉组列表 (optgroup)?

转载 作者:太空宇宙 更新时间:2023-11-04 12:06:25 25 4
gpt4 key购买 nike

我有两个下拉分组列表 (Optgroup)。我想使用向右移动、向左移动按钮在这两个 html 控件之间交换元素。我可以从左侧下拉列表项中选择一个或多个元素,然后单击右移按钮。在这种情况下,我可以将所选元素移动到右侧下拉分组列表。但是元素不会像左侧下拉分组列表那样作为分组列表插入。

这是我的 html 控件。

<select name="AvailableFields" id="AvailableFields" multiple="multiple" size="10">
<option value="">Please select</option>
<optgroup label="Group A">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</optgroup>
<optgroup label="Group B">
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
</optgroup>
</select>

<button type="button" title="Forward" id="btnRight">Move Right</button>
<button type="button" title="Backward" id="btnLeft">Move Left</button>

<select name="FieldstoBeMatchedOn" id="FieldstoBeMatchedOn" multiple="multiple" size="10">
</select>

我编写了以下代码将元素从左下拉分组列表移动到右下拉分组列表。

<script type="text/javascript">
$(document).ready(function () {
defaultListBind = function (e) {
var selectedOpts = $('#FieldstoBeMatchedOn');
alert(selectedOpts);
$('#FieldstoBeMatchedOn').append($(selectedOpts).clone());
$(selectedOpts).remove();
//e.preventDefault();
}
// defaultListBind();

$('#btnRight').click(function (e) {
var selectedOpts = $('#AvailableFields option:selected');
if (selectedOpts.length == 0) {
alert("Nothing to move.");
e.preventDefault();
}

$('#FieldstoBeMatchedOn').append($(selectedOpts).clone());
$(selectedOpts).remove();
defaultSelect();
e.preventDefault();
});

$('#btnLeft').click(function (e) {
var selectedOpts = $('#FieldstoBeMatchedOn option:selected');
if (selectedOpts.length == 0) {
alert("Nothing to move.");
e.preventDefault();
}

$('#AvailableFields').append($(selectedOpts).clone());
$(selectedOpts).remove();
defaultSelect();
e.preventDefault();
});
defaultSelect = function () {
$("#FieldstoBeMatchedOn option").each(function () {
$(this).prop("selected", true);
});
}
});
</script>

如何以分组或类别格式将元素从左侧下拉列表移动到右侧下拉列表?

JSfiddle

非常感谢您的帮助。

最佳答案

这个怎么样,你得想办法在右边什么都没有的时候把组去掉

 $(document).ready(function () {    
$('#btnRight').click(function (e) {
var selectedOpts = $('#AvailableFields option:selected');
if (selectedOpts.length == 0) {
alert("Nothing to move.");
e.preventDefault();
}

if(selectedOpts.parent().attr('label') == "Group A"){
$('#FieldstoBeMatchedOn').append($('<optgroup label="Group A">')).append($(selectedOpts).clone());
$(selectedOpts).remove();
defaultSelect();
e.preventDefault();
}
else{
$('#FieldstoBeMatchedOn').append($('<optgroup label="Group B">')).append($(selectedOpts).clone());
$(selectedOpts).remove();
defaultSelect();
e.preventDefault();
}
});

$('#btnLeft').click(function (e) {
var selectedOpts = $('#FieldstoBeMatchedOn option:selected');
if (selectedOpts.length == 0) {
alert("Nothing to move.");
e.preventDefault();
}

$('#AvailableFields').append($(selectedOpts).clone());
$(selectedOpts).remove();
defaultSelect();
e.preventDefault();
});
defaultSelect = function () {
$("#FieldstoBeMatchedOn option").each(function () {
$(this).prop("selected", true);
});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select name="AvailableFields" id="AvailableFields" multiple="multiple" size="10">
<option value="">Please select</option>
<optgroup label="Group A">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</optgroup>
<optgroup label="Group B">
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
</optgroup>
</select>

<button type="button" title="Forward" id="btnRight">Move Right</button>
<button type="button" title="Backward" id="btnLeft">Move Left</button>

<select name="FieldstoBeMatchedOn" id="FieldstoBeMatchedOn" multiple="multiple" size="10">
</select>

关于javascript - 如何使用 jquery 将所选元素从一个下拉组列表 (optgroup) 移动到另一个下拉组列表 (optgroup)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29360760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com