ajax - 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;
}
}
这是我的不同尝试:
- 为了确保帖子“chat.php?action=sendme”按预期工作,我通过函数 postmessage(); 对其进行了调试。通过将操作从“发送”更改为“发送我”。一切正常。
- 然后我开始调试我的函数 processIrcCommand(); 逐步使用 alert(); 确保;确定。如您所见,有 3 种情况。注销案例和调试案例工作正常。“我的情况”是我的问题。
我尝试了这种情况,在“开关”之外,该功能完美地工作......但不是在开关中。有什么线索吗?
如果问题看起来微不足道,我深表歉意,几个月前我才开始编码.. 学习 php,并试图更深入,我不得不即时使用 ajax。谢谢你的理解。
解决方案
推荐阅读
- vuepress - 如何将 vuepress 开发模式与 apidoc 输出结合起来?
- c++11 - 错误 C2679 二进制“<<”:未找到采用“T”类型右侧操作数的运算符(或没有可接受的转换)
- wpf - 使用 MVVM 模式时,WPF 组合框在视图中不可见
- r - 重新编码时间序列数据以为每个人创建时间 0
- python - 如何迭代一组张量并将每个组中的元素传递给一个函数?
- python - 使用 Scrapy 在管道内的 MYSQL 数据库中的 2 个表上添加项目
- angular - 如何在 Angular 7 中使用输入掩码 jQuery 插件?
- c++ - 为什么读取文件时会出现此异常,而存储文件时不会出现?
- typescript - 匹配字符串并使用打字稿返回匹配的字符串
- ruby-on-rails - 如何在rails中打印可以是JSON或非JSON的api响应?