当用户点击按钮时,我正在调用Ajax。调用ajax时,它将使用文本框检查数据文本框值是否已存在。如果存在,那么它不应该返回false ,如果在数据库中找不到记录,jquery按钮应返回true 让它通过服务器端保存在数据库上。
注意:
我的Ajax代码正常运行。但当我存在并设置
return false
时,此语句不会执行。
这是我的代码:
$('#btnSaveFile').click(function () {
var fileNames = $('#txtFileName').val();
var flags = 'test';
alert('test='+flags);
$.ajax({
url: 'ReportTotalSalesPivot.aspx/getFileExistOrNot',
method: 'post',
async:false,
contentType: 'application/json',
data: '{fileName:"' + fileNames + '",reportName:"TotalSales"}',
dataType: 'json',
success: function (data) {
if (data.d === 'dataExist') {
// it execute this loop, but after it execute it's going to server
$('#lblSaveErrorMsg').text('This filename already exist. Please change the name');
return false;
}
else {
return true;
}
},
error: function (error) {
alert('Please Call Administrator');
}
});
});
答案 0 :(得分:0)
我自己找到了结果。
Ajax是异步的。当结果为return false
时,我们无法success
。
所以我在ajax
之外声明了一个变量,并且在成功的条件下,我在ajax代码之外设置了返回false
这是我的Jquery代码
$('#btnSaveFile').click(function () {
var fileNames = $('#txtFileName').val();
var flag = 'returnTrue';
$.ajax({
url: 'ReportTotalSalesPivot.aspx/getFileExistOrNot',
method: 'post',
async: false,
contentType: 'application/json',
data: '{fileName:"' + fileNames + '",reportName:"TotalSales"}',
dataType: 'json',
success: function (data) {
if (data.d === 'dataExist') {
flag = 'returnFalse';
$('#lblSaveErrorMsg').text('This filename already exist. Please change the name');
}
else {
alert('else');
return true;
}
},
error: function (error) {
alert('Please Call Administrator');
}
});
if (flag === 'returnFalse') {
return false;
}
});