博客列表 >表单控件的取值方式-2019年1月18日

表单控件的取值方式-2019年1月18日

的博客
的博客原创
2019年01月20日 19:04:15664浏览

实例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>表单事件</title>
</head>

<body>
    <!-- 
        1. 表单值的获取: name属性
        2. onchange()事件,当值发生改变时触发, 不同的控件,触发时间时机不同
            2.1: text/textarea , 在输入完成失去焦点时,内容有更新就会触发

     -->
    <h3>登录</h3>
    <form action="" id="login">
        <p>
            <label for="username"></label>用户名:</label>
            <!-- 对于表单,其实还有一个比id更重要的属性:name -->
            <!-- name是用于将前端数据提交到服务器时的数据标识符 -->
            <!-- 所以访问,再方便的方式是name,并不是id -->
            <input type="text" id="username" name="username" value="admin">
        </p>


        <!-- 单选按钮 -->
        <p>
            <input type="radio" name="gender" value="male" id="male" checked><label for="male">男</label>
            <input type="radio" name="gender" value="female" id="female"><label for="female">女</label>
        </p>

        <!-- 复选框 -->
        <p>
            <input type="checkbox" name="hoppy[]" value="game" id="game" checked><label for="game">打游戏</label>
            <input type="checkbox" name="hoppy[]" value="book" id="book"><label for="book">读书</label>
        </p>

        <!-- 下拉框 -->
        <p>
            <select name="area" value="与option中的selected一致">
                <!-- 默认选中第一项 -->
                <option value="shushan">蜀山区</option>
                <option value="luyang">庐阳区</option>
                <option value="baohe" selected>包河区</option>
            </select>
        </p>

    </form>

    <script>
        var login = document.getElementById('login');
        console.log(login.username.value); // 'admin'
        //删除id属性,会发现仍然可以取到值,说明我们不是根据id取值,而是根据name来取值
        // 为每个控件取一个id比较麻烦,也不是每个控件都会有id,但是每个控制必定会有一个name属性
        // 所以,用name属性来选择表单控件元素是非常棒的解决方案,document有专门的方法

        // onchange事件
        // 获取文本框变化的内容
        login.username.onchange = function () {
            // 失去焦点,并且内容发生变化才会触发,没有变化不会发生,2条件缺一不同
            console.log(login.username.value);
        }

        // 获取单选按钮变化
        // 按常规思维,这样得到任何数据的
        login.gender.onchange = function () {
            console.log(login.gender.value);
        }

        // 因为gender是一组数组,返回是一个集合,不是一个单值
        console.log(login.gender);
        console.log(login.gender.length);
        console.log(login.gender[0].value);
        console.log(login.gender[1].value);


        // 我们应该将onchange事件分别添加到每一个单选按钮上
        for (var i = 0; i < login.gender.length; i++) {
            login.gender[i].onchange = function () {
                // this是发生事件的当前元素(上下文对象)
                // 重复点击一个按钮不会触发,只有改变选择才会有效
                console.log(this.value);
            }
        }

        // 复选框与单选按钮是类似的,也是返回一组相关元素
        for (var i = 0; i < login['hoppy[]'].length; i++) {
            login['hoppy[]'][i].onchange = function () {
                // this是发生事件的当前元素(上下文对象)
                // 重复点击一个按钮不会触发,只有改变选择才会有效
                console.log(this.value);
            }
        }

        // 下拉列表select中的name当前值,就是有selected属性的option中的value值
        // 当前selected属性添加到了第3项上,第一项加也不加是一样的,默认就是它
        console.log(login.area.value);
        login.area.onchange = function () {
            console.log(this.value);
        }
    </script>
</body>

</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议