Js表单元素属性


prtyaa
prtyaa 2023-12-26 19:04:11 65781
分类专栏: 资讯
  • value:用于大部分表单的内容获取。
  • type:可以获取input标签的类型(输入框/复选框)。
  • disabled:禁用属性
  • checked:复选框选中属性
  • selected:下拉框选中属性

其中disabled会被转为布尔类型。

一、获取下拉框随机值

<input type="button" value="选择" id="btn">
    <br>
    <select id="food">
        <option>烤肉</option>
        <option>拉面</option>
        <option>小龙虾</option>
        <option>火锅</option>
        <option>外卖</option>
        <option>麻辣烫</option>
    </select>
    <script>
        // 获取元素
        var btn = document.getElementById("btn");
        var food = document.getElementById("food");
        var opts = food.getElementsByTagName("option");
        // 添加按钮的点击事件
        btn.onclick = function(){
            // 获取ops数组的随机下标
            var n = Math.floor(Math.random() * opts.length);
            console.log(n);
            // 设置对应随机数的属性为选中状态
            opts[n].selected = true;
        }
    </script>

二、输入框获取焦点

使用onfocus来获取文本框的焦点。

使用onblur来失去焦点。

三、全选与反选

<table>
        <thead>
            <tr>
                <th><input type="checkbox" id="all"></th>
                <th>商品</th>
                <th>价格</th>
            </tr>
        </thead>
        <tbody id="tb">
            <tr>
                <td><input type="checkbox"></td>
                <td>inphone8</td>
                <td>8000</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>inphone8</td>
                <td>8000</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>inphone8</td>
                <td>8000</td>
            </tr>
        </tbody>
    </table>
    <input type="button" id="btn" value="反选"/>

全选:首先获取全选按钮元素,获取全部的子复选框。然后让每个子选项的checked值保持与全选按钮的checked一致;

子元素判断全选按钮是否要被选中:首先遍历所有子选项,给子选项添加点击事件,判断是否有子选项没有被选中,如果都选中就让全选为选中状态;

反选:给反选按钮添加点击事件,遍历子选项,让选中的进行取反,然后判断子选项是否都被选中,是的话全选也要选中。

 <script>
        // 获取元素
        var all = document.getElementById("all");
        var tb = document.getElementById("tb");
        var tb_input = tb.getElementsByTagName("input");
        // 全选
        // 添加点击事件
        all.onclick = function(){
            // 遍历子元素
            for(var i = 0;i < tb_input.length;i++){
                tb_input[i].checked = all.checked;
            }
        }
        // 点击一个子元素判断全选按钮是否要被选中
        // 首先循环遍历所有的子元素
        for(var i = 0;i < tb_input.length;i++){
            // 其次给每一个子元素添加点击事件
            tb_input[i].onclick = function(){
                allChecked();
            }
        }
        //反选
        btn.onclick = function(){
            for(var i = 0;i < tb_input.length; i++){
                tb_input[i].checked = !tb_input[i].checked;
            }
            allChecked();
        }
        // 是否被选中的函数
        function allChecked(){
            // 定义一个变量,让他为true
            var isChecked = true;
            // 判断是否有子元素没有被选中
            for(var j = 0;j < tb_input.length ;j++){
                if(tb_input[j].checked == false){;
                        isChecked = false;
                        break;
                }     
            }
            all.checked = isChecked;
        }
 </script>

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=31082
赞同 0
评论 0 条