当前位置: 首页 > 面试题库 >

没有警报框,AJAX无法正常工作

晏沈义
2023-03-14
问题内容

我正在尝试使用以下代码:

$('#form1').on('submit', function(){
    var txtItemCode = $('#txtItemCode').val();
    $.post("userExist.php", {
        txtItemCode: txtItemCode,
    }, function(data,status){
        //alert("Data: " + data + "\nStatus: " + status);
        $('#status').html(data);    
        reply = data;
        //alert(reply);
    });
    alert('');
    if (reply=='OK'){
        return false;
    }
});

我需要检查是否data=="OK"返回false,但是当删除时alert,它不再起作用。为什么会这样,我如何使它起作用?


问题答案:

当您引入警报时它起作用的原因是,它停止了执行并为异步调用提供了足够的时间来完成。

您没有获得正确的值,因为在发布请求完成且回调已执行时,您的JavaScript已经完成执行。

您在这里有一些选择:

  1. 声明全局变量并执行同步调用,您可以使用发布的代码ABC进行此操作,也可以$.ajaxSetup({ async: false })在POST调用之前进行调用。将返回值分配给全局变量并对此进行验证。
  2. 使用jQuery的ajaxStop: $(document).ajaxStop(function() { //check your values here, still need to declare a global });
  3. 将值写入DOM中任何位置的隐藏div /作为属性,并使用计时器定期检查它,直到有值为止。


 类似资料:
  • 问题内容: 我正在使用codeigniter 3.1。我想使用ajax发布上传数据。 Ajax上传文件不起作用。但是,当我发布不带ajax的简单表单时,它工作正常。 我不知道为什么,但控制台没有错误。 的HTML JAVASCRIPT 控制器 问题答案: 问题之一是文件上传使用的机制与其他表单类型不同。这就是为什么没有为您完成工作的原因。其他答案建议使用javascript,而这个答案也可以。 的

  • 问题内容: 我试图使用jQuery和CodeIgniter使用JSON进行我的第一个AJAX调用。但是出于某些奇怪的原因,它不起作用。 jQuery代码: CodeIgniter代码: 我尝试手动访问该页面,但似乎可以正常工作,我得到了: 我还尝试使用Firebug进行查看,但什么也没看到。 我不知道我在做什么错…真的很需要帮助。谢谢。 问题答案: 您可能需要设置HTTP内容类型才能使其正常工作:

  • 问题内容: 我想在“ div”中显示txt文件的内容,所以我用按钮调用函数,但是即使我不按按钮,函数也会触发,这是我的HTML代码: 和我的js代码: 问题答案: 的第二个参数应该是一个函数。您没有传递函数,而是立即调用该函数并传递结果。改成:

  • 问题内容: 在ajax中使用base_url()从codeigniter项目中获取数据库。给定的base_url就像http://domainname.com。很好 如果我可以在地址栏中输入http://www.domainname.com之类的网址,则无法正常工作。该代码是 请帮助解决此问题。谢谢 问题答案: 我认为最好的解决方案是: 只需在HTML的标头部分中添加以下脚本即可。 然后在您的Aj

  • 问题内容: 我将拔出所有剩余的头发,因此,如果您知道可能是什么问题,请帮助我。谢谢。我所有的谷歌搜索和搜索都没有得到回报。 首先,我正在使用jquery-1.7.2.min.js和ASP.net 2.0 Web表单。 我正在尝试使用jquery进行ajax调用,但始终收到语法错误/解析错误消息。我尝试了许多不同的方法,但是当我将dataType设置为json时,它们都会导致错误。 这是我所拥有的: