gpt4 book ai didi

javascript - 在多个选择之间移动项目

转载 作者:行者123 更新时间:2023-12-03 01:40:25 26 4
gpt4 key购买 nike

我有两个多项选择mySelectNumberTest1mySelectNumberTest2。我想要做的是能够在第一个下拉列表中选择项目,当我单击复选框/按钮或任何将触发事件的控件时,它应该从 mySelectNumberTest1 中获取选项并填充它进入mySelectNumberTest2

我已点击此链接:Get selected value in dropdown list using JavaScript?它是我的问题的部分解决方案。唯一缺少的是,如果您在 mySelectNumberTest1 中选择多个项目,它只会获取第一个项目并将其填充到 mySelectNumberTest2 中。

以下代码仅在我将选择项填充到普通输入文本框中时才有效。

 <select id="mySelectNumberTest1" name="mySelectNumberTest" multiple="multiple">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<input type="checkbox" id="tickHereToMove" />
<input id="mySelectNumberTest2" name="mySelectNumberTest2" type="text" onchange="copyTextValueTest(this);" />


function copyTextValueTest(bf) {
var e = document.getElementById("mySelectNumberTest1");
var strUser = e.options[e.selectedIndex].text;
document.getElementById("mySelectNumberTest2").value = strUser;
alert(strUser);
}

这种方法在连接文本时也存在一些问题。我尝试了 .split() 函数,但仍然没有给我想要的结果。我想要 mySelectNumberTest2 上每一行中的选定项目。

这个库http://quasipartikel.at/multiselect/正是我想做的。我正在一个 Angular JS 项目中工作,当我尝试在我的 index.html 页面中包含 jquery 脚本时,它会导致异常行为并弄乱页面的样式。

因此,如果我在 mySelectNumberTest1 中选择 13,它应该以两种不同的方式将其填充到 mySelectNumberTest2 中行而不是 12

如果这可以通过拖放实现来实现,我也会很高兴。

最佳答案

只需这样做:

function addOptions( fromId, toId ) {
var fromEl = document.getElementById( fromId ),
toEl = document.getElementById( toId );

if ( fromEl.selectedIndex >= 0 ) {
var index = toEl.options.length;

for ( var i = 0; i < fromEl.options.length; i++ ) {
if ( fromEl.options[ i ].selected ) {
toEl.options[ index ] = fromEl.options[ i ];
i--;
index++
}
}
}
}
ul {
list-style: none;
margin: 0;
padding: 0;
display: grid;
grid-template-columns: 70px 40px 70px;
grid-gap: 10px
}
select {
width: 70px
}
li.relative {
position: relative
}
#add {
position: absolute;
width: 40px;
font-size: 18px;
top: 0
}
#remove {
position: absolute;
width: 40px;
font-size: 18px;
bottom: 0
}
<ul>
<li>
<select id="select1" name="select1" multiple>
<option>Item 1</option>
<option>Item 2</option>
<option>Item 3</option>
<option>Item 4</option>
</select>
</li>
<li class="relative">
<input type="button" id="add" value="&#8702;" onclick="addOptions( 'select1', 'select2' )" />
<input type="button" id="remove" value="&#8701;" onclick="addOptions( 'select2', 'select1' )" />
</li>
<li>
<select id="select2" name="select2" multiple></select>
</li>
</ul>

关于javascript - 在多个选择之间移动项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50873082/

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