你好我有以下jquery函数
(function ($) {
$.onlyData = function (id) {
var respuesta;
var datos =$(id).data("sql");
datos=datos.split("-")
var campoBD = datos[0];
var tableModel = datos[1];
var arr = $(id).val();
var parametros = {
"Field": {
"Data": arr
}
};
$.ajax({
data: parametros,
url: '/Desarrollo/consultar_existencia/' + campoBD + "/" + tableModel,
type: 'post',
dataType: "json",
success: function (response) {
console.log(response);
respuesta=(response);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR);
}
});
return "chap"+respuesta;
}
})(jQuery);
当我点击一个按钮
在这里输入:
var unico = 0;
alert($.onlyData("#" + $(".txtEmail").attr("id")));
我了解您在打印控制台日志时具有响应的值,但在返回响应变量时却没有。
这是因为 ajax 是异步的,并且在返回时您的 ajax 函数尚未解析。
为了捕获 ajax 的响应,我建议在您的 Success 函数中,在收到响应后引入您的验证函数,例如:
作为替代建议(以及我认为不好的做法),您可以将响应的值包装在 HTML 元素中,然后从那里获取。
例如:
然后查询值
还有第三种选择:您可以使用 async:false 属性,它会在您的 ajax 响应之前停止代码执行。
我希望它可以帮助你,问候。