使用.trigger()模拟单击时,JQuery ajax调用失败

使用.trigger()模拟单击时,JQuery ajax调用失败,jquery,Jquery,在我的页面上,当用户单击一个按钮时,我使用ajax添加一个输入字段,当用户单击另一个按钮时,我将其删除。然而,我想允许用户在按下escape时删除字段,这就是事情变得奇怪的地方。我使用这段代码来模拟对指定元素的单击,我也尝试使用.click(),但没有区别 $("#Field").keydown(function(Event) { if(Event.which == 13) //Enter $(".Add").trigger("click"); else if(E

在我的页面上,当用户单击一个按钮时,我使用ajax添加一个输入字段,当用户单击另一个按钮时,我将其删除。然而,我想允许用户在按下escape时删除字段,这就是事情变得奇怪的地方。我使用这段代码来模拟对指定元素的单击,我也尝试使用.click(),但没有区别

$("#Field").keydown(function(Event) {
    if(Event.which == 13) //Enter
        $(".Add").trigger("click");
    else if(Event.which == 27) //Escape
        $(".Remove").trigger("click");
});
当我用鼠标手动点击按钮时,代码执行得很好,但当我按下escape时,ajax调用错误就会被清除,我从错误回调中得到的唯一信息是字符串“error”

我已经检查了发送的消息,并且在这两种情况下发送了相同的post数据,但是当我在代码中模拟单击而不是手动单击时,ajax调用没有到达服务器

但是,当我按enter键时,一切都按预期进行,单击按钮和按enter键之间没有区别

这是当用户单击按钮或按下任意键时执行的代码—这只是使用JQuery的ajax请求

$.ajax({
              type: "POST",
              url: "/index.php/main/handleclick",
              data: "id=" + Id + "&class=" + Class + "&value=" + Field,

              success: function(Response, Message){
                if(Response != "undefined")
                    HandleResponse(Response, Message);
                },
我不知道我在描述我的问题时是否足够清楚,脚本总是在这里结束,无论我是否单击按钮或按enter键或escape键。问题是,当我按下除escape之外的任何其他键时,代码都会正常工作

谢谢
路缘石

一些指针:

  • 由于Return键起作用,
    .trigger(“click”)
    应该起作用(没有理由它对一个键起作用而对另一个键不起作用)
  • if()
    语句的主体包装在
    {}
    中,以避免意外错误
  • 使用
    console.log()
    查看调用的代码。如果您的浏览器不支持此功能,请添加一个
    ,将其设置为页面上方的绝对位置,并使用
    $(“#调试”).text()
    进行日志记录
  • 您正在使用
    。请删除与类而不是ID匹配的
    。您确定这是您想要的吗?这个类真的只有一个元素吗
  • 使用浏览器的调试器确保执行正确的代码

请显示单击激发时执行的函数