点击注册按钮,会出现提示“请与所请求的格式保持一致”?
来源:2-5 作业题
bbb绑绑绑
2019-05-19 12:25:08
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String basePath=request.getContextPath(); request.setAttribute("basePath",basePath); %> <!-- //第1步(用户注册页面)-2 User.java --> <!DOCTYPE html> <html> <head> <base href="<%=basePath%>"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>注册界面</title> </head> <script type="text/javascript" src="js/jquery-3.4.1.min.js"></script> <script type="text/javascript"> //boolean flag;注意:JS中的所有的变量创建,是不区分类型的,只有在赋值的时候才区分,否则报错 //scricp中函数声明用funciton function checkUsername(){ var usernameRegex = /^[a-zA-Z_0-9]{3,12}$/;//\w{3,12}$/; //var usernameRegex="[a-zA-Z0-9]{6,12}";//因为会报错usernameRegex.test is not a function //flag=document.getElementById("username").value.matches(usernameRegex);因为matches(usernameRegex);无法在scricp中识别,所以我们用test校验! //知识点:1.test() 方法用于检测一个字符串是否匹配某个模式.如果字符串中有匹配的值返回 true ,否则返回 false。 //知识点:2.test()使用方法:必须用一个function调用test(),否则报错 var username=document.getElementById("username").value; if(!usernameRegex.test(username)){ document.getElementById("username").value=""; window.confirm("用户名格式不正确!"); }else{ return; } } function checkPassword(){ var passwordRegex=/^\d{6,12}$/; var password=document.getElementById("password").value; if(!passwordRegex.test(password)){ document.getElementById("password").value=""; alert("密码格式不正确!"); }else{ return; } } function checkCheckPWD(){ var password=document.getElementById("password").value; if(document.getElementById("password").value!=document.getElementById("checkPWD").value){ alert("密码输入不一致!"); document.getElementById("checkPWD").value=""; }else{ return; } } function checkPhone(){ var phoneRegex=/^1[0-9]{10}$/; var phone=document.getElementById("phone").value; if(!phoneRegex.test(phone)){ alert("电话号码格式不正确!"); }else{ return; } } function checkEmail(){ var emailRegex=/^[a-zA-Z_0-9]{3,}@([a-zA-Z]+|\d+)(\.[a-zA-Z]+)+$/; //因为是写在function里面的,所以不需要写\\.只需要写成\.即可 var email=document.getElementById("email").value; if(! emailRegex.test(email)){ alert("邮箱格式不正确!"); }else{ return; } } </script> <body> <center> <h1>用户注册</h1> <!-- 设置失去焦点事件onblur(),然后实现校验代码 --> <form action="<%=basePath%>/RegistServlet" method="post" enctype="multipart/form-data"> <table width="400px" cellspacing="0px" cellpadding="0px" border="1px"> <tr> <td>用户名</td> <td><input type="text" name="username" placeholder="用户名为3-12位字母数字或下划线组合" id="username" pattern="[a-zA-Z0-9]{3,12}" onblur="checkUsername()"></td> </tr> <tr> <td>密 码</td> <td><input type="password" name="password" placeholder="密码长度为6-12位的纯数字" id="password" pattern="[0,9]{6,12}"onblur="checkPassword()"></td> </tr> <tr> <td>确认密码</td> <td><input type="password" name="checkPWD" placeholder="密码长度为6-12位的纯数字" id="checkPWD" pattern="[0,9]{6,12}"onblur="checkCheckPWD()"></td> </tr> <tr> <td>手机号码</td> <td><input type="text" name="phone" placeholder="请输入正确的手机号码格式" id="phone" pattern="1\d{10}"onblur="checkPhone()" ></td> </tr> <tr> <td>邮箱</td> <td><input type="email" name="email" placeholder="请输入正确邮箱格式" id="email" pattern="[a-zA-Z_0-9]{3,}@([a-zA-Z]+|\\d+)(\\.[a-zA-Z]+)+" required="required"onblur="checkEmail()"></td> <!-- required 属性是一个布尔属性。required 属性规定必需在提交表单之前填写输入字段。--> </tr> <tr> <td colspan="2" style="text-align:center"> <input type="submit" value="注册"> <input type="reset" value="重置"> </td> </tr> </table> </form> </center> </body> </html>
点击注册按钮,会出现提示“请与所请求的格式保持一致”?这是什么,在代码中找不到,是浏览器自带的功能吗,怎么解决?
两外两张图是有时候点击确定之后还会重复弹出alert窗口点击确定,缩小页面再打开则会正常。然后有时候输入了会卡在输入框,鼠标点击别的框没点进去输不了内容,缩小页面再打开则会正常。这样子用户体验也太差了,怎么解决?
1回答
同学你好!
点击注册按钮,会出现提示“请与所请求的格式保持一致”,是因为在代码中添加了pattern进行校验,所以不符合时会给出提示
点击确定之后还会重复弹出alert窗口点击确定的原因是因为Onblur重复触发,这种现象经常出现在chrome浏览器中,建议同学在使用onblur时不要调用alert,confirm之类的能挂起js执行的代码,同学可以先使用标识来保存输入的信息是否正确,最后提交时一起判断是否都正确。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题