首页 > 解决方案 > ajax:包含在“开关”中时,发布方法不起作用

问题描述

基于聊天 ajax 的工作。我有一个按预期工作的 postmessage() 函数。

function postmessage()
    {
        var message =   document.getElementById("message_area").value;
        message = message.trim();
        if (message.length == 0) return;
        if (message.charAt (0) == '/')
        {
            processIrcCommand(message);
            return;
        }
        
        
        
        data = 
            {
            "action" : "send",
            "message" : message,
            };
        
        $.post('chat.php',data, function(response)
        {
            if( response == 'posted' )
            {
                $('.message_input').val(''); 
            }
        });
            
        
    }

正如您在代码中看到的那样,现在我正在努力实现 Irc 命令系统。

这是功能:

function processIrcCommand (inputText) 
{
    
    var ircCommandArray = inputText.match (/^\/([a-z?]+)\s*(.*)/);
    if (!ircCommandArray)   return;
    var ircCommand = ircCommandArray[1];
    var quotedString = ircCommandArray[2].match (/"(.*)"/);
    if (quotedString == null)
        var ic_more = ircCommandArray[2].match (/(\S*)\s*(.*)/);
    else
        var ic_more = ircCommandArray[2].match (/"(.*)"\s*(.*)/);
    
    
    switch (ircCommand) 
    {
        case "debug":
          alert('code working');
          $('.message_input').val('');
        break; 

        case "me":
            
            data = 
            {
            "action" : "sendme",
            "message" : message,
            };
        
            $.post('chat.php',data, function(response)
            {
                if( response == 'posted' )
                {
                    $('.message_input').val(''); 
                }
            });
          break;
        
        case "quit":
        case "logout":
            location.href = "https://stackoverflow.com/"
        break;
        
        
    }
}

这是我的不同尝试:

  1. 为了确保帖子“chat.php?action=sendme”按预期工作,我通过函数 postmessage(); 对其进行了调试。通过将操作从“发送”更改为“发送我”。一切正常。
  2. 然后我开始调试我的函数 processIrcCommand(); 逐步使用 alert(); 确保;确定。如您所见,有 3 种情况。注销案例和调试案例工作正常。“我的情况”是我的问题。

我尝试了这种情况,在“开关”之外,该功能完美地工作......但不是在开关中。有什么线索吗?

如果问题看起来微不足道,我深表歉意,几个月前我才开始编码.. 学习 php,并试图更深入,我不得不即时使用 ajax。谢谢你的理解。

标签: ajaxpostswitch-statement

解决方案


推荐阅读