解决ajax回调函数无返回值得问题

这里以编辑验证角色名为例:

  首先,定义一个flag全局变量。

  然后,在回调函数resp()中根据判断将flag的值设为true或false。

  最后,在调用函数ckrname()中,return flag就Ok了。

代码如下:

 1 var xmlhttp;
 2         function ckrname() {
 3             var rolename = document.getElementById("rolename").value;
 4             var oldRoleName = document.getElementById("oldRoleName").value;
 5             if (rolename==""||rolename==null||reg.test(rolename)) {
 6                 document.getElementById("sprname").style.color="red";
 7                 document.getElementById("sprname").innerHTML="角色名不能为空";
 8                 return false;
 9             }else{
10                 xmlhttp = new XMLHttpRequest();
11                 //绑定回调函数状态码改变事件
12                 xmlhttp.onreadystatechange=resp;
13                 //发送请求准备
14                 xmlhttp.open("get", "<%=basePath%>RoleServlet?method=neweditrole&roleName="+rolename+"&oldRoleName="+oldRoleName, true);
15                 xmlhttp.send(null);
16                 return flag;
17             }
18         }
19 var flag;
20         function resp(){
21             if(xmlhttp.readyState==4&&xmlhttp.status==200){
22                 var txt = xmlhttp.responseText;
23                 if(txt>0){
24                     //alert("用户名已存在,请重新输入!");
25                     document.getElementById("sprname").style.color="red";
26                     document.getElementById("sprname").innerHTML="角色名已存在,请重新输入!";
27                     flag=false;
28                 }else{
29                     document.getElementById("sprname").innerHTML = "√";
30                     document.getElementById("sprname").style.color = "green";
31                     flag=true;
32                 }
33             }
34         }
时间: 2024-10-17 12:50:19

解决ajax回调函数无返回值得问题的相关文章

ajax回调函数中使用$(this)取不到对象的解决方法

如果在ajax的回调函数内使用$(this)的话,实践证明,是取不到任何对象的,需要的朋友可以参考下 $(".derek").each(function(){ $(this).click(function(){ var params = $(this).parent().serialize(); var obj=$(this).parent().siblings("div#caskContent"); var form=$(this).parent(); $.aja

转: jquery中ajax回调函数使用this

原文地址:jquery中ajax回调函数使用this 写ajax请求的时候success中代码老是不能正常执行,找了半天原因.代码如下 1 $.ajax({type: 'GET', 2 url: "/flag/", 3 data: dat, 4 success:function(){ 5 $(this).prevAll('p').css("text-decoration","line-through"); 6 } 7 }); 最后发现是ajax中

AJAX 回调函数刷新页面问题

AJAX 回调函数执行完成后,刷新页面window.location.reload()执行无效: 实现方式 1.获取当前页面链接 var route = window.location.href 2.执行完成后 通过replace重定向到当前页面 $.ajax({ url: 'XXX.php', type: 'post', data: { "action": 'XXX', }, success: function(data) { if (JSON.parse(data).success

ajax 传值,Ajax: Asynchoronous Javascript and xml (异步的js和xml). 异步刷新,异步传递.替代表单提交数据,回调函数处理返回的数据

aspx里的代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="s

Ajax回调函数返回的中文字符串乱码问题

通过ajax提交请求,返回的response所带的中文字符串一直显示为乱码,写了如下代码也无效: response.setCharacterEncoding("UTF-8"); response.getWriter().print("返回结果"); 后来在web.xml 添加如下描述,终于解决问题: <filter> <filter-name>CharacterEncodingFilter</filter-name> <fi

javascript 回调函数的返回值给全局变量赋值的问题

jQuery 中,会遇到$.get(url,data,callback,type) 或 $.post(url,data,callback,type) 返回值给全局变量赋值的问题: 例如: <script type="text/javascript" src="jquery-1.4.min.js"></script> <script language="JavaScript"> var mm = 1; $.get

Javascript AJAX回调函数传递参数

在Javascript 中,特别是在AJAX中,回调函数常常是一个函数名,没有地方放入参数,如下面的AJAX代码,在成功后将调用回调函数callback,但callback是有参数的,如何把参数传进来呢? var callback = function(p1){ //do something } var ajaxSetting = { url: url, timeout:me.timeout, type: method, contentType: "application/json",

jquery的ajax方法在无返回值时的返回值类型设定

2013-12-07 19:15:29|  分类: Web前端 |  标签:html  |举报|字号 订阅 $.ajax({ type: "post", url: "index.php", data: "id="+uid, dataType:"json", success : function(){ alert(1); }, error: function(){ alert(0); } }); 在jquery的ajax方法中,

ajax 回调函数

回调函数 如果要处理$.ajax()得到的数据,则需要使用回调函数.beforeSend.error.dataFilter.success.complete. beforeSend 在发送请求之前调用,并且传入一个XMLHttpRequest作为参数. error 在请求出错时调用.传入XMLHttpRequest对象,描述错误类型的字符串以及一个异常对象(如果有的话) dataFilter 在请求成功之后调用.传入返回的数据以及"dataType"参数的值.并且必须返回新的数据(可能