用ajax提交表单自动刷新问题以及req.getParameter取不到值的问题

采用jquery和ajax提交表单到servlet,但是在实现回传函数后自动刷新了页面。

//初始代码
$("#registerForm").submit(function(){
					//1.发送数据到服务器
					if(checkUsername() && checkPassword() && checkEmail()){
					    //校验通过,发送ajax请求,提交表单的数据   username=zhangsan&password=123

						$.post("registUserServlet",$(this).serialize(),function(data){
							//处理服务器响应的数据  data  {flag:true,errorMsg:"注册失败"}

							if(data.flag){
							    //注册成功,跳转成功页面
								location.href="register_ok.html";
							}else{
							    //注册失败,给errorMsg添加提示信息
								$("#errorMsg").html(data.errorMsg);

							}
						});

					}
					//2.不让页面跳转
                    return false;
                    //如果这个方法没有返回值,或者返回为true,则表单提交,如果返回为false,则表单不提交
				});

这里我一开始return false没有用 ,所以把submit按钮改成了Button。后面发现自己return false的位置出错了。

<input type="button" class="submit" id="submit" value="注册">

接着改aja代码


            $("#submit").click(function(){
           //     function tijiao() {
                    if (checkusername() && checkpassword() && checkemail()) {
                       alert("aaa");
                        $.post("registUserServlet",$(this).serialize(),function(data){
                            //处理服务器响应的数据  data  {flag:true,errorMsg:"注册失败"}
                            alert("bbb");
                            if (data.flag) {
                                //注册成功,跳转成功页面
                                location.href = "register_ok.html";
                            } else {
                                alert("ax");
                                //location.reload(false);
                                //注册失败,给errorMsg添加提示信息
                                $("#ErrorMsg").html(data.errorMsg);
                                //return false;返回的位置放错了
                            }
                        },"json");
                    }
              //  }
            alert("fads");
           // $("#registerForm").submit(tijiao);
     })
});

直接在function中放ajax就可以,不需要写KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲registerForm").…("#registerForm").submit(function(){}。
这个时候能提交也不刷新了,但是req.getParameter(“check”)取不到值,后台 System.out.println(check);显示的是null。
检查代码,因为是用按钮提交,$(this).serialize()不能再用了。

  alert($("#registerForm").serialize());
                        $.post("registUserServlet",$("#registerForm").serialize(),function(data){}

改成$("#registerForm").serialize()即可

猜你喜欢

转载自blog.csdn.net/qq_34287121/article/details/89873468