如果Ajax结果成功,如何将false设置为ASP按钮?

时间:2017-03-30 11:07:00

标签: javascript jquery asp.net ajax winforms

当用户点击按钮时,我正在调用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');                
        }
    });        
});

1 个答案:

答案 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;
    }

});