我有一些选定的输入,它们有相同的选项。
同一个班级,每个选择的ID不同。
我在每个选项中都有一个“onChange”事件,它给我选择的选项。
如何从所有其他选项中删除此值,而不删除选中的位置,以及如果“取消选择”,如何还原它。
非常感谢代码: -if选项2被选中,id喜欢将其从所有选择中移除但不选择在哪里 -
dim s as Integer;
s = System.IO.Directory.GetFiles("C:\tmp_dir").Count();
LogMessage(Text(s,"#"));
答案 0 :(得分:3)
您必须获取所有选定的值并将其存储在数组中。然后,您可以使用filter
使用includes
我使用jQuery $("select").change(..
因为它更容易。 :)
$(document).ready(function() {
$("body").on('change', '.optionRisp', function() {
var val = [];
//Get all selected
$('.optionRisp option:selected').each(function() {
if ($(this).val() != "") val.push($(this).val());
});
//Hide Selected
if ( $(this).val() != "" ) {
$(".optionRisp").not(this).find("option").show().filter(function() {
return $(this).val() != "" && val.includes($(this).val()) ? true : false;
}).hide();
} else {
$(".optionRisp").find("option").show().filter(function() {
return $(this).val() != "" && val.includes($(this).val()) ? true : false;
}).hide();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="optionRisp form-control">
<option value=""></option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<select class="optionRisp form-control">
<option value=""></option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<select class="optionRisp form-control">
<option value=""></option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>