JavaScript之Form表单及表单校验完整代码

一、Form表单基础操作

1、js操作多选框、单选框

被选中状态下在js中checked属性值为true,未选中状态为false

//多选操作
function testCheckBox(){
      //获取所有的多选元素对象数组
            var favs = document.getElementsByName("fav");
      //遍历数组
            for(var i=0;i<favs.length;i++){
                if(favs[i].checked){
                    alert(favs[i].value+":"+favs[i].checked);
                }
            }
        }
//全选
function testCheckBox2(){
      var favs = document.getElementsByName("fav");
      for(var i=0;i<favs.length;i++){
            favs[i].checked=true;
      }
}
//反选
function testCheckBox3(){
     var favs = document.getElementsByName("fav");
     for(var i=0;i<favs.length;i++){
           favs[i].checked=!favs[i].checked;
     }
}

2、js操作下拉框

被选择的option对象在js中selected属性值为true,未选中状态为false

 //操作下拉框
function testSel(){
     //获取下拉框对象
     var sel = document.getElementById("address");
     alert(sel.value);
         //获取option对象集合
     var os = sel.options;
     for(var i=0;i<os.length;i++){
         alert(os[i].value+":"+os[i].text);
     }
}

3、实例

<!DOCTYPE html>
<html lang = "en">
<head>
    <meta charset = "UTF-8">
    <meta name = "viewport" content = "width = device - width, initial - scale = 1.0">
    <meta http-equiv = "X-UA-Compatible" content = "ie-edge">
    <title>JavaScript之操作表单元素</title>
    <script>
        //多选操作
            function testCheckBox(){
                //获取所有的多选元素对象数组
                    var favs = document.getElementsByName("fav");
                //遍历数组
                    for(var i=0;i<favs.length;i++){
                        if(favs[i].checked){
                            alert(favs[i].value+":"+favs[i].checked);
                        }
                    }
            }
            //全选
            function testCheckBox2(){
                var favs = document.getElementsByName("fav");
                for(var i=0;i<favs.length;i++){
                    favs[i].checked=true;
                }
            }
            //反选
            function testCheckBox3(){
                var favs = document.getElementsByName("fav");
                for(var i=0;i<favs.length;i++){
                    favs[i].checked=!favs[i].checked;
                }
            }
        //操作下拉框
            function testSel(){
                //获取下拉框对象
                var sel = document.getElementById("address");
                alert(sel.value);
                //获取option对象集合
                var os = sel.options;
                for(var i=0;i<os.length;i++){
                    alert(os[i].value+":"+os[i].text);
                }
            }
    </script>
</head>
<body>
    <h3>操作表单元素</h3>
    <hr/>
    <b>操作多选框</b><br/><br/>
    <input type="checkbox" name="fav" id="fav" value="1"/>青花瓷<br/>
    <input type="checkbox" name="fav" id="fav" value="2"/>木马城市<br/>
    <input type="checkbox" name="fav" id="fav" value="3"/>消愁<br/>
    <input type="checkbox" name="fav" id="fav" value="4"/>素颜<br/>
    <input type="checkbox" name="fav" id="fav" value="5"/>成都<br/>
    <input type="checkbox" name="fav" id="fav" value="6"/>彼岸花开<br/>
    <input type="button" name="" id="" value="播放" onclick="testCheckBox()"/>
    <input type="button" name="" id="" value="全选" onclick="testCheckBox2()"/>
    <input type="button" name="" id="" value="反选" onclick="testCheckBox3()"/>
    <hr/>
    <select name="" id="address" onchange="testSel()">
        <option value="0">--请选择--</option>
        <option value="1">北京</option>
        <option value="2">上海</option>
        <option value="3">广州</option>
    </select>
</body>
</html>

二、Form表单校验完整代码

<!DOCTYPE html>
<html lang = "en">
<head>
    <meta charset = "UTF-8">
    <meta name = "viewport" content = "width = device - width, initial - scale = 1.0">
    <meta http-equiv = "X-UA-Compatible" content = "ie-edge">
    <title>JavaScript之表单校验</title>
    <style>
        tr{
            height:40px;
        }
        #showdiv{
            border:solid 1px #201f1f;
            border-radius:10px;
            width:500px;
            margin:auto;
            margin-top:40px;
        }
        table{
            margin: auto;
        }

        span{
            font-size: 13px;
        }

        #codeSpan{
            font-size: 20px;
        }
    </style>
    <script>
        //常见验证码
        function createCode(){
            //创建随机四位数字
            var code = Math.floor(Math.random()*9000+1000);
            //获取元素对象
            var span = document.getElementById("codeSpan");
            //将数字存放到span中
            span.innerHTML = code;
        }
        //验证用户名
        function checkUname(){
            //获取用户的用户名信息
            var uname = document.getElementById("uname").value;
            //创建校验规则
            var reg = /^[\u4e00-\u9fa5]{2,4}$/
            //获取校验对象
            var span = document.getElementById("unameSpan");
            //开始校验
            if(uname=="" || uname==null){
                //输出校验结果
                span.innerHTML="用户名不能为空";
                span.style.color="red";
                return false;
            }else if(reg.test(uname)){
                //输出校验结果 
                span.innerHTML="用户名符合规则";
                span.style.color="green";
                return true;
            }else{
                //输出校验结果 
                span.innerHTML="用户名不符合规则";
                span.style.color="red";
                return false;
            }
        }
        
        //验证密码
        function checkPwd(){
            //获取用户的密码信息
            var pwd = document.getElementById("pwd").value;
            //创建校验规则
            var reg=/^[a-z]\w{5,7}$/;
            //获取校验对象
            var span = document.getElementById("pwdSpan");
            //开始校验
            if(pwd==""||pwd==null){
                //输出校验结果
                span.innerHTML="密码不能为空";
                span.style.color="red";
                return false;
            }else if(reg.test(pwd)){
                span.innerHTML="密码符合规则";
                span.style.color="green";
                return true;
            }else{
                //输出校验结果 
                span.innerHTML="密码格式不正确";
                span.style.color="red";
                return false;
            }
            checkPwd2();
        }
        //校验确认密码
        function checkPwd2(){
            //获取第一次密码
            var pwd = document.getElementById("pwd").value;
            //获取确认密码
            var pwd2 = document.getElementById("pwd2").value;
            //获取span对象
            var span = document.getElementById("pwd2Span");
            //比较两次密码是否相同
            if(pwd2==""||pwd2==null){
                span.innerHTML="确认密码不能为空";
                span.style.color="red";
                return false;
            }else if(pwd==pwd2){
                span.innerHTML="确认密码";
                span.style.color="green";
                return true;
            }else{
                span.innerHTML="两次密码不一致";
                span.style.color="red";
                return false;
            }
        }
        //校验手机号
        function checkPhone(){
            return checkFiled("phone",/^1[3,4,5,7,8]\d{9}$/);
        }

        //校验邮箱
        function checkMail(){
            return checkFiled("mail",/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/);
        }

        //校验籍贯
        function checkAddress(){
            //获取用户选择的数据
            var sel = document.getElementById("address").value;
            //获取span
            var span = document.getElementById("addressSpan");
            //校验
            if(sel!=0){
                span.innerHTML="籍贯选择成功";
                span.style.color="green";
                return true;
            }else{
                span.innerHTML="不能选择该籍贯,请重新选择";
                span.style.color="red";
                return false;
            }
        }

        //校验爱好
        function checkFav(){
            //获取所有爱好
            var favs = document.getElementsByName("fav");
            //获取span
            var span = document.getElementById("favSpan");
            //遍历
            for(var i=0;i<favs.length;i++){
                if(favs[i].checked){
                    span.innerHTML="爱好选择成功";
                    span.style.color="green";
                    return true;
                }
            }
            span.innerHTML="爱好至少一项";
            span.style.color="red";
            return false;
        }

        //封装校验:相同的保留,不同的传参
        function checkFiled(id,reg){
            //获取用户数据
            var inp = document.getElementById(id);
            var va = inp.value;
            var alt = inp.alt;
            //创建校验规则
            //获取span对象
            var span = document.getElementById(id+"Span")
            //开始校验
            if(va==""||va==null){
                //输出校验结果
                span.innerHTML=alt+"不能为空";
                span.style.color="red";
                return false;
            }else if(reg.test(va)){
                span.innerHTML=alt+"符合规则";
                span.style.color="green";
                return true;
            }else{
                //输出校验结果 
                span.innerHTML=alt+"不符合规则";
                span.style.color="red";
                return false;
            }
        }
        
        //校验是否同意公司协议
        function checkAgree(){
            document.getElementById("sub").disabled=!document.getElementById("agree").checked;
        }
        //提交判断
        function checkSub(){
            checkUname();
            checkPwd();
            checkPwd2();
            checkPhone();
            checkMail();
            checkAddress();
            checkFav();
            return  checkUname()&&checkPwd()&&checkPwd2()&&checkPhone()&&checkMail()&&checkAddress()&&checkFav();
        }

    </script>
</head>
<body onload="createCode()">
    <div id="showdiv">
    <form action="#" method="get" onsubmit="return checkSub()">
        <table>
            <tr>
                <td width="80px">用户名:</td>
                <td width="200px">
                    <input type="text" name="uname" id="uname" value="" onblur="checkUname()"/> 
                    <span id="unameSpan">

                    </span>
                </td>
            </tr>
            <tr>
                <td>密码:</td>
                <td>
                    <input type="password" name="pwd" id="pwd" value="" onblur="checkPwd()"/>
                    <span id="pwdSpan">

                    </span>
                </td>
            </tr>
            <tr>
                <td>确认密码:</td>
                <td>
                    <input type="password" name="pwd2" id="pwd2" value="" onblur="checkPwd2()"/>
                    <span id="pwd2Span">

                    </span>
                </td>
            </tr>
            <tr>
                <td>手机号:</td>
                <td>
                    <input type="text" name="phone" id="phone" value="" alt="手机号" onblur="checkPhone()"/>
                    <span id="phoneSpan"></span>
                </td>
            </tr>
            <tr>
                <td>邮箱:</td>
                <td>
                    <input type="text" name="mail" id="mail" value="" alt="邮箱" onblur="checkMail()"/>
                    <span id="mailSpan"></span>
                </td>
            </tr>
            <tr>
                <td>籍贯:</td>
                <td>
                    <select name="address" id="address" onchange="checkAddress()">
                    <option value="0">--请选择--</option>
                    <option value="1">北京</option>
                    <option value="2">上海</option>
                    <option value="3">广州</option>
                    </select>
                    <span id="addressSpan"></span>
                </td>
            </tr>
            <tr>
                <td>爱好:</td>
                <td>
                    <input type="checkbox" name="fav" id="" value="1" onclick="checkFav()"/>LOL
                    <input type="checkbox" name="fav" id="" value="2" onclick="checkFav()"/>睡觉
                    <input type="checkbox" name="fav" id="" value="3" onclick="checkFav()"/>吃饭<br/>
                    <input type="checkbox" name="fav" id="" value="4" onclick="checkFav()"/>达咩
                    <input type="checkbox" name="fav" id="" value="5" onclick="checkFav()"/>看电影
                    <input type="checkbox" name="fav" id="" value="6" onclick="checkFav()"/>听歌
                    <span id="favSpan">

                    </span>
                </td>
            </tr>
            <tr>
                <td>个人介绍:</td>
                <td>
                    <textarea name="intro" rows="4" cols="40" id="intro"></textarea>
                </td>
            </tr>
            <tr>
                <td>验证码:</td>
                <td>
                    <input type="text" name="code" id="code" value="" style="width:100px;"/>&nbsp;&nbsp;&nbsp;
                    <span id="codeSpan" onclick="createCode()"></span>
                </td>
            </tr>
            <tr> 
                <td colspan="2" align="center">
                    <input type="checkbox" name="" id="agree" value="" onclick="checkAgree()"/>是否同意本公司协议
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <input type="submit" name="" id="sub" value="立即注册" disabled="disabled"/> 
                </td>
            </tr>
        </table>
    </form>
    </div>
</body>
</html>
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue3 Element Plus是一套基于Vue3的UI组件库提供了丰富的组件和功能,其中包括了Form表单组件。在Element Plus中,可以通过动态校验来实现同一字段的表单动态校验。 在Vue3 Element Plus中,可以使用`el-form`组件来创建表单,通过`el-form-item`组件来包裹表单项。要实现同一字段的表单动态校验,可以使用`rules`属性来定义校验规则。 首先,需要在Vue组件中定义表单数据和校验规则。例如: ```javascript data() { return { form: { field1: '', field2: '' }, rules: { field1: [ { required: true, message: '字段1不能为空', trigger: 'blur' }, // 其他校验规则 ], field2: [ { required: true, message: '字段2不能为空', trigger: 'blur' }, // 其他校验规则 ] } } } ``` 然后,在模板中使用`el-form`和`el-form-item`组件来创建表单,并绑定数据和校验规则。例如: ```html <template> <el-form :model="form" :rules="rules" ref="form"> <el-form-item label="字段1" prop="field1"> <el-input v-model="form.field1"></el-input> </el-form-item> <el-form-item label="字段2" prop="field2"> <el-input v-model="form.field2"></el-input> </el-form-item> </el-form> </template> ``` 最后,可以通过调用`validate`方法来触发表单校验。例如: ```javascript methods: { submitForm() { this.$refs.form.validate((valid) => { if (valid) { // 校验通过,提交表单 } else { // 校验不通过,处理错误信息 } }); } } ``` 这样,就可以实现同一字段的表单动态校验了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊凯瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值