一、select多选框赋值

select多选框也称作下拉多选框,通过设置option的selected属性来指定被选中的项。示例代码如下:


    苹果
    橘子
    香蕉
    梨

以上代码中,通过设置option元素的selected属性来指定被选中的项。表示初始值为苹果和香蕉两项。

二、select多选框内容移动

常常需要在两个多选框之间进行内容的移动,将一个多选框中的内容移动到另一个多选框中。示例代码如下:


    苹果
    橘子
    香蕉
    梨

<input type="button" value="→" onclick="moveSelection('srcSelect', 'destSelect')">


<script>
    function moveSelection(sourceId, targetId){
        var src = document.getElementById(sourceId);
        var dest = document.getElementById(targetId);
        for(var i=0; i<src.options.length; i++){
            if(src.options[i].selected){
                dest.appendChild(src.options[i]);
                i--;
            }
        }
    }
</script>

以上代码中,使用JavaScript实现了将一个多选框中的内容移动到另一个多选框中。通过在源多选框中选中需移动的项,然后点击→按钮,即可将选中的项移动到目标多选框中。

三、select多选框在ie为啥出现了光标

在IE浏览器中,当多选框的样式设置为display:none或者visibility:hidden时,会出现光标问题。解决方法如下:


    苹果
    橘子
    香蕉
    梨

<input type="button" value="选择水果" onclick="showSelect()">


<script>
    function showSelect(){
        var select = document.getElementById('fruitSelect');
        var div = document.getElementById('fruitDiv');
        if(div.style.display == 'none'){
            div.innerHTML = select.outerHTML;
            div.style.display = 'block';
            var options = div.getElementsByTagName('option');
            for(var i=0; i<options.length; i++){
                if(options[i].selected){
                    options[i].setAttribute('selected', 'selected');
                }
            }
            select.name = '';
        }else{
            select.name = 'fruit';
            var selectedOptions = div.getElementsByTagName('select')[0].getElementsByTagName('option');
            for(var i=0; i<selectedOptions.length; i++){
                if(selectedOptions[i].selected){
                    selectedOptions[i].setAttribute('selected', 'selected');
                }
            }
            select.outerHTML = div.innerHTML;
            div.style.display = 'none';
        }
    }
</script>

以上代码中,通过将多选框隐藏,并在点击按钮时将其复制到一个div中显示,以避免出现光标问题。

四、select多选框回显

在多选框提交表单后,如果需要回显用户之前选过的值,可以使用以下代码:


    <option value="apple" =0?"selected":""%>>苹果
    <option value="orange" =0?"selected":""%>>橘子
    <option value="banana" =0?"selected":""%>>香蕉
    <option value="pear" =0?"selected":""%>>梨

以上代码中,通过判断数组fruit中是否包含每一个选项的值,如果包含则设置option的selected属性为true,否则为false。

五、select多选框获取值

可以通过以下代码获取多选框中选中的项的值:

var select = document.getElementsByName("fruit")[0];
var selectedValues = [];
for(var i=0; i<select.options.length; i++){
    if(select.options[i].selected){
        selectedValues.push(select.options[i].value);
    }
}
console.log(selectedValues);

以上代码中,通过遍历所有选项,将被选中的选项的值保存到数组中,以便后续使用。

六、select多选框获取最后点击的数据

可以通过下面的代码获取最后点击的选项的值:

var select = document.getElementsByName("fruit")[0];
var lastSelectedValue;
select.onmousedown = function(){
    lastSelectedValue = this.value;
}
console.log(lastSelectedValue);

以上代码中,通过给select注册onmousedown事件,在鼠标点击时保存当前点击的选项的值,以便后续使用。

七、选择select

可以通过下面的代码实现选择一个option:

var select = document.getElementsByName("fruit")[0];
select.selectedIndex = 2;
console.log(select.value);

以上代码中,将selectedIndex属性设置为2,即可选中第3个选项,从而实现选择。

八、select选择框默认值

可以通过给option设置selected属性来设置select选择框的默认值。


    苹果
    橘子
    香蕉
    梨

九、select标签多选

使用multiple属性即可实现select标签的多选功能。


    苹果
    橘子
    香蕉
    梨

以上就是对select多选框的详细阐述,包括赋值、内容移动、光标问题、回显、获取值、获取最后点击的数据、选择、默认值和多选等多个方面。