0
 $.validator.addMethod("checkUsername", 
   function(value, element){
    var test;     //we want to use this test is like boolean variable
    $.ajax({
        type:"GET",            
        data: 'name='+ value,
        url: "master/ValidationDepartment.jsp",
        success: function(response){  
               test = true;   //assign this value is true                
        },
        error: function() {
               test = false;  //assign this value is false 
    }
    });
         //alert(test);     // bt now this time test value is undifined
    return test;
  }, 
"Departmentname Already Exists."
);
});

我也试过了var test = true。如果我们test = true每次都声明它的值为真。

4

2 回答 2

1

由于 ajax 调用将异步运行,因此test只有在函数返回后才会更改值。为防止这种情况发生,async: false请在 ajax 请求的选项中进行设置。

这里提出了一个类似的问题:https ://stackoverflow.com/a/2982669/1705725

于 2013-06-20T10:48:42.510 回答
0

异步运行,您的.ajax()值将立即返回。您可以在成功或错误处理程序中编写回调函数并更新变量。您可以设置async:false,但它会阻塞,直到 AJAX 响应返回。

于 2013-06-20T10:43:00.927 回答