`

jquery ajax之函数里面ajax请求,不能返回return 值

 
阅读更多

 

代码 
代码如下: 
function getReturnAjax{ 
$.ajax({ 
type:"POST", data:"username="+vusername.value, 
success:function(msg){ 
if(msg=="ok"){ 
showtipex(vusername.id,"<img src='http://www.jb51.net/article/images/ok.gif'/><b><font color='#ffff00'>该用户名可以使用</font></b>",false) 
return true; else showtipex(vusername.id,"<img src='http://www.jb51.net/article/images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false); 
vusername.className="bigwrong"; 
return false; 
} } 
 
但是我们调用这个getReturnAjax()发现始终取得的都是false,那就是说return true,return false根本没有起作用,在火狐下用firebug调试也证明,代码根本不会执行到return 部分。 
 
我们试想在函数里先定义一个变量,然后在ajax里赋值,最后在函数的末尾返回这个变量,会不会有效果呢?我们把代码修改如下: 
 
代码 
代码如下: 
function getAjaxReturn(){ 
var bol=false; 
$.ajax({ 
type:"POST", data:"username="+vusername.value, 
success:function(msg){ 
if(msg=="ok"){ 
showtipex(vusername.id,"<img src='http://www.jb51.net/article/images/ok.gif'/><b><font color='#ffff00'>该用户名可以使用</font></b>",false) 
// return true; 
bol=true; else showtipex(vusername.id,"<img src='http://www.jb51.net/article/images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false); 
vusername.className="bigwrong"; 
//return false; } 
return bol; 
 
结果仍然不起作用。最后解决方案有2,如下 
 
1、添加<span style="color: #0000ff;">async:false</span>.即修改为同步了,什么意思?(按同事解释就是,这是等这个ajax有了返回值后才会执行下面的js。一语道破天机,怪不得以前很多ajax调用里面的赋值都不起作用)。这样等ajax给bol赋值完毕后,才执行下面的js部分。而刚刚异步的话,还没有来得及赋值,就已经return了。 
 
代码 
代码如下: 
function getAjaxReturn() { 
<span style="color: #ff0000;">var bol=false; 
</span>$.ajax({ 
type:"POST", 
<span style="color: #0000ff;">async:false,</span> data:"username="+vusername.value, 
success:function(msg){ 
if(msg=="ok"){ 
showtipex(vusername.id,"<img src='http://www.jb51.net/article/images/ok.gif'/><b><font color='#ffff00'>该用户名可以使用</font></b>",false) 
// return true; 
bol=true; else showtipex(vusername.id,"<img src='http://www.jb51.net/article/images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false); 
vusername.className="bigwrong"; 
//return false; }<span style="color: #ff0000;"> return bol; 
</span>} 
 
2、 通过传入一个函数解决这个问题。 
代码如下: 
function getAjaxReturn(success_function,fail_function){ 
var bol=false; 
$.ajax({ 
type:"POST", data:"username="+vusername.value, 
success:function(msg){ 
if(msg=="ok"){ 
showtipex(vusername.id,"<img src='http://www.jb51.net/article/images/ok.gif'/><b><font color='#ffff00'>该用户名可以使用</font></b>",false) 
success_function(msg); 
} 
else showtipex(vusername.id,"<img src='http://www.jb51.net/article/images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false); 
vusername.className="bigwrong"; 
fail_function(msg); 
//return false; } 
}); 
function success_function(info) //do what you want do 
alert(info); funciont fail_function(info) //do what you want do 
alert(info); 
} 
分享到:
评论

相关推荐

    jQuery-ajax-用户名异步请求

    在这个示例中,`$.ajax()`是jQuery提供的核心Ajax函数。我们设置了`url`参数为服务器端处理请求的脚本,通常是一个PHP、Python、Node.js或其他后端语言编写的接口。`type`参数设置请求类型为POST,因为可能涉及到...

    SSH1,JQuery的ajax返回json二维数组处理过程

    例如,当用户选择第一个下拉框(`yearnum`)的某个选项时,AJAX会发送一个请求,服务器根据所选值返回对应的第二级数据。 JSP代码部分: ```jsp &lt;!-- 这里加载页面时的数据,不涉及AJAX --&gt; ;"&gt; ;"&gt;查看详情&gt;&gt;&...

    Asp.Net MVC之jQuery与AJAX操作实例

    在jQuery的AJAX回调函数中,我们可以处理服务器返回的数据。例如,可以更新DOM元素,展示或隐藏某些元素,或者触发其他操作。 六、异步文件上传 在Asp.Net MVC中,使用jQuery和AJAX进行文件上传需要额外的插件,如...

    jquery ajax demo

    jQuery的$.ajax()方法提供了对AJAX的封装,使得开发者可以方便地发起AJAX请求。 ### 2. jQuery AJAX基本用法 `$.ajax()`函数接受一个包含各种选项的对象作为参数,用于配置AJAX请求。例如: ```javascript $.ajax...

    vue基本环境+jquery ajax应用

    在标题“vue基本环境+jquery ajax应用”中,我们可以理解为这个压缩包可能包含了一个基本的Vue开发环境,并展示了如何结合jQuery的AJAX功能来处理数据请求。 Vue的基本环境通常包括Vue的核心库、Vue CLI(命令行...

    spring3 mvc 用 jquery ajax 交互

    其内置的AJAX函数使得发起异步请求变得非常简单。 接下来,我们将探讨如何在Spring MVC项目中使用jQuery的AJAX功能: 1. **配置Spring MVC**:在Spring的配置文件中,我们需要定义DispatcherServlet和相应的视图...

    jquery Ajaxupload应用

    **jQuery AjaxUpload应用详解** AjaxUpload是一款非常实用的JavaScript插件,它允许用户在无需刷新页面的情况下上传文件,极大地提升了用户体验。在这个详细的知识点解析中,我们将深入理解AjaxUpload的工作原理,...

    Jquery Ajax实现简易计算器

    计算完成后,服务器会返回结果,Jquery的Ajax请求会自动解析JSON响应,并将其传递给`success`回调。 总结来说,利用Jquery的Ajax功能,我们可以创建一个无需页面刷新的简易计算器。用户在前端输入数值和运算符,...

    springMVC jQuery ajax交互

    jQuery还提供了方便的Ajax函数,如$.ajax()、$.get()和$.post(),允许我们实现异步数据传输,无需刷新整个页面就能与服务器进行通信。 在SpringMVC和jQuery的集成中,Ajax通常用于实现前后端的无刷新交互。例如,...

    asp.net 利用jquery-ajax调用后台方法

    `$.ajax()`是jQuery提供的一个核心函数,用于发起异步HTTP请求。下面将详细介绍如何利用jQuery-AJAX调用ASP.NET后台方法。 1. **创建WebMethod** 在ASP.NET的C#或VB.NET代码中,我们可以创建一个静态的WebMethod,...

    springmvc利用jquery实现ajax的例子

    这段代码会向服务器发送一个POST请求,带上名为`param1`的参数,服务器响应后,`success`回调函数会被调用,你可以在这里处理返回的数据。 4. **集成与测试** 将项目部署到Web服务器上,然后在浏览器中访问页面,...

    asp.net使用jquery ajax 小例子

    然而,在这个例子中,我们将重点放在jQuery的AJAX函数上,因为它是跨平台的,并且更加灵活。 jQuery的AJAX函数`$.ajax()`是核心。它允许我们创建一个异步HTTP(GET或POST)请求,从而在不刷新整个页面的情况下获取...

    jquery ajax 同步异步的执行 return值不能取得的解决方案

    调用getReturnAjax()时,它总是返回false,因为AJAX请求是异步的,所以return语句会在AJAX请求处理之前就已经执行,导致函数总是返回初始值false。 为了解决这个问题,我们可以通过以下两种方案: ### 方案1:将...

    利用JQuery jsonp实现Ajax跨域请求json数据

    由于`&lt;script&gt;`标签不受同源策略限制,可以加载任何源的JavaScript文件,开发者会在请求的URL中添加一个回调函数名参数,服务器接收到请求后,会将数据包裹在这个回调函数中返回,客户端执行这个函数,从而实现了...

    struts2+jquery实现ajax

    在客户端,使用jQuery的`$.ajax()`方法发起Ajax请求。该方法接受多个参数,如URL(指向Struts2 Action的URL)、类型(GET或POST)、数据(要发送到服务器的数据,如果有的话)和回调函数。回调函数通常包括`success...

    C#.net下jquery ajax实例及教程

    首先,jQuery库简化了JavaScript中的DOM操作和事件处理,同时也提供了方便的AJAX函数。`$.ajax()`是jQuery中最核心的AJAX方法,它允许开发者自定义请求的各个参数,如URL、数据类型、请求类型(GET或POST)以及回调...

    Jquery Ajax刷新GirdView

    3. **创建Ajax请求**:编写JavaScript代码,使用JQuery的`.ajax()`方法发送Ajax请求到服务器端的方法。例如,你可以创建一个按钮,当点击该按钮时触发Ajax请求: ```html 刷新" OnClientClick="refreshGridView()...

    从Ajax到JQuery Ajax学习

    无论是使用原生JavaScript还是借助jQuery等库,掌握Ajax技术都是现代Web开发中不可或缺的一部分。通过理解`XMLHttpRequest`对象的工作原理以及如何使用jQuery简化Ajax操作,开发者可以更好地构建动态且交互丰富的Web...

    Jquery的ajax请求的三个例子(带后台代码)

    通过以上三个例子可以看出,使用jQuery进行Ajax请求不仅能够简化前端代码的编写,还能有效地处理服务器端返回的各种数据类型。无论是简单的投票操作还是复杂的用户状态检测和卡片分配,jQuery都能提供强大的支持。在...

    使用jQuery简化Ajax 开发.pdf

    `$()`函数是jQuery的核心,它接受一个CSS选择器作为参数,返回一个包含所有匹配元素的jQuery对象。随后,我们可以在这些元素上执行各种操作,如添加事件监听器。 #### CSS选择器的力量 jQuery的强大之处还在于它对...

Global site tag (gtag.js) - Google Analytics