http://blog.csdn.net/qq_26222859/article/details/51543433
在
ajax中是无法给js中的全局变量赋值的,因为ajax默认是异步请求(当要赋值时,此时的值没有拿到,所以赋值不成功)。例如:
function test(){
var result=0;
$.ajax({
type: "POST",
url: "ajax/checkfor1.php?action=reg_checkEmail",
data: {email:email},
dataType: 'text',
success: function(data){
results=data;
error: function() {
alert("异常!");
执行时会发现赋不进去值
解决办法
1:将ajax请求设置为同步请求
function test(){
var result=0;
$.ajax({
type: "POST",
url: "ajax/checkfor1.php?action=reg_checkEmail",
data: {email:email},
dataType: 'text',
async: false, //设置为同步请求
success: function(data){
results=data;
error: function() {
alert("异常!");
解决办法
2:不使用js全局变量存数据而是用隐藏的html标签存数据
function test(){
var result=0;
$.ajax({
type: "POST",
url: "ajax/checkfor1.php?action=reg_checkEmail",
data: {email:email},
dataType: 'text',
success: function(data){
$('#datastore').append('<div data='+data+'></div>');//使用一个div标签,定义一个自定义属性data来存储数据
error: function() {
alert("异常!");