老师有个提交按钮的问题想请教
来源:3-10 作业题
Jyuloeng
2019-07-18 10:19:39
<!-- html --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>作业</title> <link rel="stylesheet" type="text/css" href="./css/style.css"> <script type="text/javascript" src="./js/jquery-3.4.1.js"></script> <script type="text/javascript" src="./js/style.js"></script> </head> <body> <!-- 头部 --> <div class="header"> <div class="center"> <div class="headerLeft"> <a href="https://www.imooc.com" class="logo"> <img src="./images/logo.png"> </a> <span class="title">慕课高铁客户服务中心</span> <span class="bold">|</span> <span class="service">客户服务</span> </div> <div class="headerRight"> <ul> <li>意见反馈</li> <li class="orange"><a href="#">imooc@com</a> </li> <li>您好,请</li> <li class="orange"><a href="#">登陆</a></li> <li>|</li> <li><a href="#">注册</a></li> <li class="myImooc"> 我的IMOOC<span class="triangleDown"></span> <ul> <li><a href="#">未完成订单</a></li> <li><a href="#" class="borderBottom">已完成订单(改/退)</a></li> <li><a href="#" class="borderBottom">我的保险</a></li> <li><a href="#">查看个人信息</a></li> <li><a href="#" class="borderBottom">账户安全</a></li> <li><a href="#" class="borderBottom">常用联系人</a></li> <li><a href="#">重点旅客预约</a></li> <li><a href="#" class="borderBottom">遗失物品查找</a></li> <li><a href="#" class="borderBottom">服务查询</a></li> <li><a href="#">投诉</a></li> <li><a href="#">建议</a></li> </ul> </li> <li class="phone"> <a href="#"> <img src="./images/未标题-1.png"> <span class="phoneTitle">手机版</span> </a> </li> </ul> </div> </div> </div> <!-- 主体 --> <div class="main center"> <div class="location"> <span>您现在的位置:</span> <a href="#">客运首页</a> > <a href="#">注册</a> </div> <div class="info"> <div class="infoTitle"> 账户信息 </div> <form> <div class="item"> <span class="important">*</span> <label for="userAccount">用户名</label>: <input type="text" id="userAccount" placeholder=" 用户设置成功后不可修改"> <span class="tips"></span> </div> <div class="item"> <span class="important">*</span> <label for="userPassword">登陆密码</label>: <input type="password" id="userPassword" placeholder=" 6-20位字母、数字或符号"> <span class="level" id="red"></span> <span class="level" id="orange"></span> <span class="level" id="green"></span> <span class="tips"></span> </div> <div class="item"> <span class="important">*</span> <label for="userPassword_">确认密码</label>: <input type="password" id="userPassword_" placeholder=" 再次输入您的登陆密码"> <span class="tips"></span> </div> <div class="item"> <span class="important">*</span> <label for="userName">姓名</label>: <input type="text" id="userName" placeholder=" 请输入姓名"> <span class="tips" style="text-decoration: underline;">姓名填写规则</span> <div id="role"> <p>1.确认姓名中生僻字无法输入时,可用生僻字拼音或同音字替代。</p> <p>2.输入姓名保存后,遇有系统无法正确显示的汉字,可用该汉子的拼音或同音字重新修改后保存。</p> <p>3.姓名中有繁体字无法输入时,可用简体替代。</p> <p>4.姓名较长,汉字与英文字符合计超过30个(1个汉子算2个字符)的,需按姓名中第一个汉字或英文字符开始按顺序连续输入30个字符(空格字符不输入),其中英文字符输入时不去别大小写</p> </div> </div> <div class="item"> <span class="important">*</span> <label for="userIdType">证件类型</label>: <select id="userIdType"> <option> 二代身份证</option> <option> 港澳通行证</option> <option> 台湾通行证</option> <option> 护照</option> </select> </div> <div class="item"> <span class="important">*</span> <label for="userId">证件号码</label>: <input type="text" id="userId" placeholder=" 请输入您的证件号码"> <span class="tips"></span> </div> <div class="item"> <span class="important">*</span> <label for="userEmail">邮箱</label>: <input type="text" id="userEmail" placeholder=" 请正确填写邮箱地址"> <span class="tips"></span> </div> <div class="item"> <span class="important">*</span> <label for="userPhoneNum">手机号码</label>: <input type="text" id="userPhoneNum" placeholder=" 请输入您的手机号码"> <span class="tips">请填写手机号码,稍后将向该手机号码发送短信验证码</span> </div> <div class="item"> <span class="important">*</span> <label for="userType">旅客类型</label>: <select id="userType"> <option> 成人</option> <option> 儿童</option> <option> 学生</option> <option> 残疾军人</option> <option> 伤残人民警察</option> </select> </div> <div class="end"> <input type="checkbox" id="choose"> <label for="choose">我已阅读并同意遵守<a href="https://www.12306.cn/mormhweb/gljd/wzls/" target="_blank">《中国铁路客户服务中心网站服务条款》</a></label> <!-- <input type="submit" id="submit" value="下一步"> --> <button id="submit">下一步</button> </div> </form> </div> </div> <!-- 底部 --> <div class="footer"> <div class="center"> <p style="padding-top: 31px;"><a href="#">关于我们</a> | <a href="#">网站声明</a></p> <p>Copyright©2017imooc.com All Rights Reserved | 京ICP备 13046642号-2</p> </div> </div> </body> </html>
/* css */ *{padding: 0; margin: 0; font-family: '微软雅黑'; } a{text-decoration: none; } ul{list-style-type: none; } .center{margin: 0 auto; width: 1200px; position: relative; } /*头部*/ .header{height: 125px; background: #efefef; border-bottom: 2px solid rgb(36,135,201); } /*左边*/ .headerLeft{float: left; position: relative; width: 425px; height: 125px; } .headerLeft .logo{position: absolute; top: 9px; } .headerLeft .title{position: absolute; top: 48px; left: 120px; font-size: 22px; } .headerLeft .bold{position: absolute; font-size: 25px; font-weight: bold; left: 345px; top: 45px; } .headerLeft .service{position: absolute; color: #8e8a8a; left: 360px; top: 52px; } /*右边*/ .headerRight{float: right; position: relative; width: 580px; height: 125px; } .headerRight a{color: black; } .headerRight ul{position: absolute; top: 51px; } .headerRight>ul>li{float: left; padding-right: 9px; } .headerRight .orange a{color: rgb(251,116,3); } .headerRight ul .myImooc{position: relative; cursor:pointer; width: 107px; height: 32px;} .headerRight ul .myImooc:hover{ color: rgb(251,116,3);} .headerRight ul .myImooc .triangleDown{width: 0; height: 0; border-left: 7px solid #efefef; border-right: 7px solid #efefef; border-top: 7px solid black; position: absolute; top: 8px; right: 5px; } .headerRight ul .phone{position: relative; width: 60px; margin-left: 35px;} .headerRight ul .phone img{position: absolute; width: 14px; height: 19px; padding-right: 5px; top: 3px; } .headerRight ul .phone .phoneTitle{position: absolute; right: 2px; } .headerRight ul li:hover ul{display: block; } .headerRight ul li ul{display: none; width: 148px; height: 265px; font-size: 12px; background: #fff; border: 1px solid rgb(251,116,3); position: absolute; top: 32px; } .headerRight ul li ul li{height: 24px; line-height: 28px; text-indent: 11px; } .headerRight ul li ul li:hover{background: #eee; } .headerRight ul li ul li a{width: 128px; height: 24px; display: inline-block; } .borderBottom{border-bottom: 1px dashed lightgray; } .headerRight ul li ul a{color: gray; } /*主体*/ .main{height: 700px;} .location{font-size: 18px;color: gray;position: absolute;top: 10px;} .location a{color: gray;} .location span{color: black;} .info{position: absolute;border: 1px solid rgb(251,116,3);width: 1200px;height: 600px;top: 44px;border-radius: 10px;} .info .infoTitle{background: rgb(251,116,3);color: white;font-size: 19px;height: 35px;line-height: 34px;border-top-left-radius: 10px;border-top-right-radius: 10px;padding-left: 20px;} .info form{width: 666px;margin: 50px 300px 50px;} .info .item{padding: 7px;} .item .important{color: red;vertical-align: middle;} .item label{width: 67px;display: inline-block;text-align: justify;text-align-last: justify;} .item input{width: 200px;box-shadow: 0 0 0px 100px white inset;} .item select{width: 204px;padding-left: 2px;} .item .tips{padding-left: 6px;color: red;font-size: 14px;} .item .level{display: inline-block;width: 39px;height: 7px;background: #D3D3D3;border: none;vertical-align: middle;} .item #red{background: red;margin-left: 5px;} .item #role{font-size: 12px;color: gray;border: 1px solid rgb(36,135,201);width: 470px;padding: 10px;position: absolute;z-index: 9999;background: white;top: 224px;left: 705px;display: none;} .item #role p{line-height: 30px;} .end{position: relative;height: 60px;} .end #choose{position: absolute;top: 10px;left: 110px;} .end label{position: absolute;top: 5px;left: 127px;} .end #submit{position: absolute;width: 200px;height: 33px;font-size: 16px;border-radius: 5px;background: rgb(251,116,3);color: white;border: none;top: 77px;left: 144px;} .end #submit:hover{color: orange;background: white;border: 2px solid orange;cursor: pointer;} .end a{color: #0000FF;} /* 底部 */ .footer{height: 108px;border-top: 2px solid rgb(36,135,201);background: #efefef;} .footer p{text-align: center;padding-top: 8px;color: #808080;} .footer a{color: #808080;}
// js $(document).ready(function(){ // 获取元素 var formElem = { userAccount : $('#userAccount'), //用户名 userPassword : $('#userPassword'), //用户密码 userPassword_ : $('#userPassword_'), //确认密码 userName : $('#userName'), //用户姓名 userId : $('#userId'), //用户证件 userEmail : $('#userEmail'), //用户邮箱 userPhoneNum : $('#userPhoneNum'), //用户手机号码 submit : $('#submit'), //提交按钮 tips : $('.tips'), //相应提示 red : $('#red'), //密码强度低 orange : $('#orange'), //密码强度中 green : $('#green'), //密码强度高 role : $('#role') //姓名规则 }; var choose = document.getElementById('choose'); // 创建相应正则表达式 var pattern = { userAccount: /^[a-z]\w{5,29}$/i, //验证用户名 userPassword: /^\S{6,20}$/, //验证用户密码 userName: /(^[\u4e00-\u9fa5]{2,15}$)|(^[a-z]{3,30}$)/i, //验证姓名 userId: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, //验证身份证号 userEmail: /^\w+@\w+.[a-zA-Z]{2,3}$/, //验证邮箱 userPhoneNum: /^(?:13[0-9]|147|15[012356789]|18[0256789])\d{8}$/, //验证手机号码 userPassword_low : /(^[1-9]{6,20}$)|(^[a-zA-Z]{6,20}$)|(^\W{6,20}$)/, //密码强度低 userPassword_mid : /(^[1-9|a-z]{6,20}$)|(^[\W|a-z]{6,20}$)|(^[\W|1-9]{6,20}$)/i //密码强度中 }; // 为相应输入框创建判断方法 var test = { userAccount : function(){ if(!pattern.userAccount.test(formElem.userAccount.val())){ formElem.tips.eq(0).text('6-30位字母、数字或“_”,字母开头'); formElem.tips.eq(0).css('color','red'); return false; }else{ formElem.tips.eq(0).text('用户名输入正确'); formElem.tips.eq(0).css('color','green'); return true; } }, userPassword : function(){ if(!pattern.userPassword.test(formElem.userPassword.val())){ formElem.tips.eq(1).html('<br />请输入6-20位字母、数字或符号'); formElem.tips.eq(1).css('padding-left','100px'); return false; }else{ if(pattern.userPassword_low.test(formElem.userPassword.val()) || pattern.userPassword_low.test(formElem.userPassword.val()) || pattern.userPassword_low.test(formElem.userPassword.val())){ formElem.tips.eq(1).html(''); formElem.green.css('background','#ddd'); formElem.orange.css('background','#ddd'); return true; }else if(pattern.userPassword_mid.test(formElem.userPassword.val())||pattern.userPassword_mid.test(formElem.userPassword.val())||pattern.userPassword_mid.test(formElem.userPassword.val())){ formElem.tips.eq(1).html(''); formElem.green.css('background','#ddd'); formElem.orange.css('background','orange'); return true; }else{ formElem.tips.eq(1).html(''); formElem.green.css('background','green'); formElem.orange.css('background','orange'); return true; } } }, userPassword_ : function(){ if(formElem.userPassword.val() != formElem.userPassword_.val()){ formElem.tips.eq(2).html('两次输入的密码不一致,请重新输入'); formElem.tips.eq(2).css('color','red'); return false; }else if(formElem.userPassword.val() == ''){ formElem.tips.eq(2).html('密码不能为空'); formElem.tips.eq(2).css('color','red'); return false; }else{ formElem.tips.eq(2).text('两次输入一致'); formElem.tips.eq(2).css('color','green'); return true; } }, userName: function(){ if(!pattern.userName.test(formElem.userName.val())){ formElem.tips.eq(3).html('姓名只能包含中文或者英文,且字符在3-30个之间!'); formElem.tips.eq(3).css({'color':'red','text-decoration':'none'}); return false; } else{ formElem.tips.eq(3).text('姓名输入正确'); formElem.tips.eq(3).css({'color':'green','text-decoration':'none'}); return true; } }, userId: function(){ if(!pattern.userId.test(formElem.userId.val())){ formElem.tips.eq(4).html('请输入18位身份证号码'); formElem.tips.eq(4).css('color','red'); return false; } else{ formElem.tips.eq(4).text('号码输入正确'); formElem.tips.eq(4).css('color','green'); return true; } }, userEmail: function(){ if(formElem.userEmail.val() == ''){ formElem.tips.eq(5).html('邮箱不能为空'); formElem.tips.eq(5).css('color','red'); return false; }else if(!pattern.userEmail.test(formElem.userEmail.val())){ formElem.tips.eq(5).html('请输入正确的邮箱地址'); formElem.tips.eq(5).css('color','red'); return false; } else{ formElem.tips.eq(5).text('邮箱格式正确'); formElem.tips.eq(5).css('color','green'); return true; } }, userPhoneNum: function(){ if(formElem.userPhoneNum.val() == ''){ formElem.tips.eq(6).html('手机号码不能为空'); formElem.tips.eq(6).css('color','red'); return false; }else if(!pattern.userPhoneNum.test(formElem.userPhoneNum.val())){ formElem.tips.eq(6).html('您输入的手机号码不是有效的格式'); formElem.tips.eq(6).css('color','red'); return false; } else{ formElem.tips.eq(6).text('手机格式正确'); formElem.tips.eq(6).css('color','green'); return true; } }, }; // 循环遍历绑定事件 for(var i in formElem){ formElem[i].on('blur',test[i]); } // 判断是否能提交 formElem.submit.on('click',function(){ var judge = function(){ for(var i in test){ if(test[i]() != true || choose.checked != true){ test[i](); return false; } } return true }; if(judge() == true){ alert('提交成功!'); }else{ for(var i in test){ if(test[i]() != true){ formElem[i].focus(); return; } } } }) // 为姓名填写规则绑定事件 formElem.tips.eq(3).on('mouseenter mouseleave',function(event){ if(event.type == 'mouseenter'){ if(formElem.tips.eq(3).text() == '姓名填写规则'){ formElem.role.css('display','block'); }else{ formElem.role.css('display','none'); } }else if(event.type == 'mouseleave'){ formElem.role.css('display','none'); } }) });
上面是我的样式代码,然后有如下图这个地方不是很懂,
为什么我次次点击下一步按钮页面都会刷新呢,而且就算失败了也会刷新,不会将焦点定位到输入错误的输入框,然后请问怎么样能提交成功的时候跳转网页呢,我用window.location = 'https:// www.imooc.com'这句话也不能跳转而是直接刷新,请老师解答
1回答
好帮手慕夭夭
2019-07-18
你好同学,这是因为form表单会有默认的提交行为,提交之后就会刷新页面。所以设置如下阻止表单默认行为即可:
阻止默认行为就可以跳转了,不过同学提供的地址中,www前面有空格,要删掉哦:
祝学习愉快,望采纳。
相似问题