王康伯巴奇 2019-01-04 20:04 采纳率: 0%
浏览 302
已采纳

[jsp+js]onsubmib方法无效

想做一个提交表单前先核对输入框内的输入是否合法的效果


这是jsp页面

<form id='f' method="post" action="AddStuServlet" onsubmit="return check();">
            学号<br/><input type="text" name="id"/><br/>
            姓名<br/><input type="text" name="name"/><br/>
            电话<br/><input type="text" name="phone" /><br/>
            性别<br/><font color='#5599FF'>男</font><input type="radio" name="sex" value="男" checked="true"/>&nbsp;
                    <input type="radio" name="sex" value="女"/><font color='#5599FF'>女</font><br/>
            年龄<br/><input type="text" name="age"/><br/>
            班级<br/><input type="text" name="classname"/><br/>
            <input type="submit" value="添加" class="but"/> 
            <br/>
            <input type="reset" value="重写" class="but"/><br/>
        </form>
        <a href="Operate.jsp">回到首页</a>

这是js代码

// JavaScript Document
function check(){
//浏览器没报js错
alert("1");//成功运行
var id = document.getElementsByName('id')[0].value.replace(/(^\s*)|(\s*$)/g, "");
var phone = document.getElementByName('phone')[0].value.replace(/(^\s*)|(\s*$)/g, "");
var age = document.getElementsByName('age')[0].value.replace(/(^\s*)|(\s*$)/g, "");
var classname = document.getElementsByName('classname')[0].value.replace(/(^\s*)|(\s*$)/g, "");
var errors = document.getElementsByName('error');
var flag = true;
/*每次点击时都先清空错误提示消息*/
for(var i=0; i<errors.length; i++){
errors[i].innerHTML = "";
}

if((/^[1-9]\d{0,1}/.test(id))==false){
errors[0].innerHTML = "学号输入有误,应为非0开头的1-2位数字";
flag = false;
}
if((/^[1-9]{1}\d{10}$/.test(phone))==false){
errors[1].innerHTML = "电话格式有误,应为0开头的11位整数";
flag = false;
}
if((/^[1-9]\d{0,2}$/.test(age))==false){
errors[2].innerHTML = "年龄格式有误,应为非0开头的1-3位数字";
flag = false;
}
if((/^[1-9]{2}[\u4e00-\u9fa5]{2,3}[1-9]{1}[\u73ed]{1}$/.test(classname))==false){
errors[3].innerHTML = "班级名称格式有误,应为'2位数字+2字专业+1位数字+班'";
flag = false;
}
    return flag;
}

出现的效果就是无论我输入什么都可以被顺利提交
浏览器没有任何报错,js内写了一个alert也顺利运行了,求解
正则表达式也在菜鸟教程的代码diy处测试过,顺利通过且有效

  • 写回答

1条回答 默认 最新

  • 可爱的小书包 2019-01-05 22:37
    关注

    你需要把action里面的值清空,具体的值,需要到方法里面进行添加,不然的话就是直接走了,也就是你这个必须要阻止跳转才行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 3月28日

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题