关于jquery ajax
我想使用ajax,来获取当前账号有没有被创建,这是我servlet中的方法:
public void checkAccount(HttpServletRequest request,HttpServletResponse response) throws IOException { String account = request.getParameter("account"); Staff staff = staffService.getByAccount(account); JSONObject jsonObject = null; if (null != staff){ //数据库已存在该账号,则返回信息给ajax jsonObject = new JSONObject("{accountFlag:2}"); }else { //数据库未存在该账号 jsonObject = new JSONObject("{accountFlag:1}"); } System.out.println("调用"); System.out.println(jsonObject.toString().getBytes("utf-8")); response.getOutputStream().write(jsonObject.toString().getBytes("utf-8")); }
这是我jsp的代码
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=8" > <title>添加员工</title> <link rel="stylesheet" type="text/css" href="../css/reset.css"/> <link rel="stylesheet" type="text/css" href="../css/common.css"/> <link rel="stylesheet" type="text/css" href="../css/thems.css"> <script type="text/javascript" src="../js/jquery-1.8.3.min.js"></script> <script type="text/javascript"> $(function(){ //自适应屏幕宽度 window.onresize=function(){ location=location }; var main_h = $(window).height(); $('.hy_list').css('height',main_h-45+'px'); var main_w = $(window).width(); $('.xjhy').css('width',main_w-40+'px'); }); </script> </head> <script type="text/javascript"> function get() { //点击输入账号时,触发ajax事件 $.ajax({ url:"checkAccount.do", type:"post", data:{ account:$("input[name=account]").val() }, dateType:"json", success:function (result) { var flag = result.flag; if (flag == 2){ //登录失败则提示用户 // $(".tip").text("该账号已被注册"); document.getElementById("tip").innerHTML="该账号已被注册"; alert("该账号已被注册"); }else if (flag == 1) { document.getElementById("tip").innerHTML="该账号未被注册"; }else { document.getElementById("tip").innerHTML="测试"; } } }); } </script> <body onLoad="Resize();"> <div id="right_ctn"> <div class="right_m"> <div class="hy_list"> <div class="box_t"> <span class="name">添加员工</span> </div> <div class="space_hx"> </div> <form action="add.do" method="post" name="addForm"> <div class="xjhy"> <!--高级配置--> <ul class="hypz gjpz clearfix"> <li class="clearfix"> <span class="title">姓名:</span> <div class="li_r"> <input class="chang" name="name" type="text"> </div> </li> <li class="clearfix"> <span class="title">部门:</span> <div class="li_r"> <select name="did" > <c:forEach items="${DLIST}" var="dep"> <option value="${dep.id}">${dep.name}</option> </c:forEach> </select> </div> <span class="tip"></span> </li> <li class="clearfix"> <span class="title">账号:</span> <div class="li_r"> <input class="chang" name="account" type="text" onchange="get()"> </div> <span class="tip" id="tip"></span> </li> <li class="clearfix"> <span class="title">密码:</span> <div class="li_r"> <input class="chang" name="password" type="password"> </div> </li> <li class="clearfix"> <span class="title">性别:</span> <div class="li_r"> <span class="radio"> <input checked="checked" name="sex" type="radio" value="男" > <em>男</em> </span> <span class="radio"> <input name="sex" type="radio" value="女"> <em>女</em> </span> </div> </li> <li class="clearfix"> <span class="title">备注:</span> <div class="li_r"> <input class="chang" name="info" type="text"> </div> </li> <li class="tj_btn"> <a href="javascript:history.go(-1);" class="back"> 返回</a> <a href="javascript:addForm.submit();">保存</a> </li> </ul> <!--高级配置--> </div> </form> </div> </div> </div> </body> </html>
为什么我jsp的success无法获取正确的flag值?
2
收起
正在回答 回答被采纳积分+1
5回答
乐高战士
2018-10-16 10:38:29
function checkAccount() { //点击输入账号时,触发ajax事件 $.ajax({ url:"checkAccount.do", type:"post", data:{ account:$("input[name=account]").val() }, dateType:"json", success:function (result) { var result = eval("("+result+")"); var account = document.getElementById("account").value; //var account = addForm.account.value;也可以 var accountFlag = result.accountFlag; if (account == "") { document.getElementById("accountTip").innerHTML="请输入账号"; }else if (accountFlag == 1){ document.getElementById("accountTip").innerHTML="该账号已被注册"; }else if (accountFlag == 2) { document.getElementById("accountTip").innerHTML=" "; } } }); }
public void checkAccount(HttpServletRequest request,HttpServletResponse response) throws IOException { String account = request.getParameter("account"); Staff staff = staffService.getByAccount(account); JSONObject accountJson = null; if (null != staff){ //数据库已存在该账号,则返回信息给ajax accountJson = new JSONObject("{accountFlag:1}"); }else if (null == staff){ //数据库未存在该账号 accountJson = new JSONObject("{accountFlag:2}"); } response.setContentType("text/text"); response.getOutputStream().write(accountJson.toString().getBytes("utf-8")); }
这个方法也能被调用,不知道为什么checkDelete方法不能被调用
chrismorgen
2018-10-16 10:05:06
使用Ajax传递字符串可以使用下图方式进行传递,另外一个问题建议你检查一下在你的代码中是否调用了checkDelete方法,祝学习愉快~
乐高战士
2018-10-15 21:29:52
<script type="text/javascript" language="JavaScript"> function checkDelete() { var flag = confirm("是否确定要删除该员工?"); if (flag == true){ //触发ajax事件 $.ajax({ url:"checkDelete.do", type:"post", data:{ deleteFlag:1 }, dateType:"json", success: function (result) { alert("删除成功"); } }); }else{ this.location.reload(); } } </script>
public void checkDelete(HttpServletRequest request,HttpServletResponse response) { String deleteFlagStr = request.getParameter("deleteFlag"); Integer deleteFlag = Integer.parseInt(deleteFlagStr); System.out.println(deleteFlagStr); }
chrismorgen
2018-10-15 11:07:12
建议将 var flag = result.flag;改为 var flag = result.accountFlag;试试,如果我的建议解决了你的问题,请采纳,祝学习愉快~
SSM主流框架入门与综合项目实战2018版
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星