Ajax 调用在 keyup 函数中不起作用

Posted

技术标签:

【中文标题】Ajax 调用在 keyup 函数中不起作用【英文标题】:Ajax call is not working in keyup function 【发布时间】:2020-10-28 18:16:18 【问题描述】:

当我在 ajax 调用警报显示之前放置警报但未在 ajax 调用内部显示时,它甚至没有进入 ajax 调用内部,为什么它是一个 php 文件,而我正在使用 xxamp。

<div class="col-sm-12 pb-3">

 <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script>

document.querySelector("#scroll_msg").scrollTop = document.querySelector("#scroll_msg").scrollHeight;

</script>





$(document).ready(function()

$('#text').keyup(function(e)

if(e.keyCode==13)   
    
var text=$('#text').val(); 
    $.ajax(
        
        type:'POST',
        url:'insert_msg.php',
    data:text:text,
    
    success:function() 
        //alert('hello');
        $('#scroll_msg').load('display_msg.php'); 
        $('#text').val('');
        
     
        
    );
    
    
    

    

);

);

【问题讨论】:

什么是“alert('hello');”在你的 ajax 配置对象中做什么?它破坏了语法。 无论如何它都不起作用我在成功函数中尝试了警报而不是ajax 并且您确实包含了 jquery 和一个带有 id text 的 textarea 或 input[type=text] ? 是的,一切都很好,它是一个 textarea 类型 = text 和 id =text 那么您必须向我们提供更多代码,因为上面的 sn-p 很好。 【参考方案1】:

删除 alert() 并且以下是工作代码。 (显然它在这里不起作用,因为这些端点对 *** 无效,但如果您在您的环境中尝试,它们应该可以工作)

$(document).ready(function()

    $('#text').keyup(function(e)
        if(e.keyCode==13)
            
           console.log('Event keyUp on enter');
            var text=$('#text').val(); 
            $.ajax(
             
                type:'POST',
                url:'insert_msg.php',
                data:text:text,

                success:function()    alert('hello');
                    $('#scroll_msg').load('display_msg.php');
                    $('#text').val('');
                 
            );
           
    );     
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<input type="text" id="text">

【讨论】:

好像还是不行 你能不能点击上面ans中的Run Code sn-p,你应该可以看到它正在进入ajax并且keyup事件正在运行。你也可以分享你在本地运行时看到的控制台错误吗? Uncaught TypeError: $.ajax is not a function at htmlTextAreaElement. (sent_messages.php:92) at HTMLTextAreaElement.dispatch (jquery-3.4.1.slim.min.js:2)在 HTMLTextAreaElement.v.handle (jquery-3.4.1.slim.min.js:2) (匿名) @ sent_messages.php:92 dispatch @ jquery-3.4.1.slim.min.js:2 v.handle @ jquery -3.4.1.slim.min.js:2 是的,我知道它得到了 keyup 事件,但我只是注意到控制台中的错误,它是 ajax 或我的 Jquery 版本中的问题,我不知道帮助我【参考方案2】:

是的,我的代码终于没问题了,它是 Jquery 的精简版 引起了问题,所以我将其替换为仅缩小了它现在可以使用, 谢谢大家。

【讨论】:

以上是关于Ajax 调用在 keyup 函数中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

密钥事件工作时,密钥事件在CKEDITOR中不起作用

Ajax 调用在 angularjs 中不起作用

Ajax 在 windows 的 Visual Studio 中不起作用(Blend)

$.extend 中的 AJAX 函数在 jQuery 3 中不起作用

跨域 Ajax 调用在 Safari 4 和 Safari 5 中不起作用

.ajax 在 IE 中不起作用 [重复]