如何停止jQuery调用的触发?

时间:2019-05-28 20:47:51

标签: javascript jquery

我有一个程序,当用户登录时会发送聊天。在我的php文件中,我防止未登录的用户发送消息;但是,当有人单击“发送聊天”按钮时,jQuery仍会触发,并且会进行呼叫,这似乎会引起一些奇怪的延迟问题(例如快速刷新聊天日志,几乎就像重新加载了页面一样)。

在某些情况下是否有可能甚至阻止jQuery?

我试图在jQuery本身中放置一个if语句,但是如果这完全可行(我对此表示怀疑),我将找不到解决方法。

 $(document).ready(function(){
        $("#button4").click(function(){

           var message=$("#c4").val();
            var key = "sendChat";
            $.ajax({
                url:'rpc.php',
                method:'POST',
                data:{
                    user:user,
                    message:message,
                    key:key

                },
               success:function(data){
                   document.getElementById('chatbox').innerHTML = data;
               }
            });
        });
    });

正如我之前提到的,该程序在功能上起作用;但是,当您尝试发送消息但未登录时,从美学角度上看聊天记录并不令人满意。

除了我的php文件中的直接预防措施(不允许访问数据库)之外,我还在按钮上添加了“ onclick”,如果用户未登录,它会显示警报...

这使它看起来更好一些,但是整个聊天仍然可以重载,因为在警报关闭后它仍会触发sendChat jQuery ...

也许不可能,我只是挑剔,但如果有人知道防止这种情况的方法,那将不胜感激

1 个答案:

答案 0 :(得分:-1)

在点击处理程序中

类似

if ( ! user ) {
    event.preventDefault();
}

记住

不要仅依靠php终结点从您的Web表单获取呼叫。 坏人无需浏览器就可以将他们想要的任何东西发送到您的php代码中