AJAX调用响应,事件不仅仅在mozilla中定义

时间:2016-01-12 23:56:47

标签: javascript jquery ajax google-chrome firefox

我有一个用于应用内聊天的表单,它在数据库中创建消息本身,然后通过AJAX显示消息。由于其他原因,我必须确保在提交后js响应只触发一次,所以我放在那里if(event.handled !== true)。如果没有这个条件,firefox和chrome都可以正常工作,但是如果我把它放在代码中,那么chrome仍然有效,但是firefox发送了这个错误:ReferenceError: event is not defined。这里发生了什么?我该怎么办才能让它与ff一起工作?

提交

的js
$(document).on('keydown', '.chatboxtextarea', function (event) {
  var id = $(this).data('cid');
  checkInputKey(event, $(this), id);
});

function checkInputKey(event, chatboxtextarea, conversation_id) {
  if (event.keyCode == 13 && event.shiftKey == 0) {
    event.preventDefault();
    message = chatboxtextarea.val();
    if (message != '') {
      $('#conversation_form_' + conversation_id).submit();
    }
  }
};

js.erb(如果提交成功,则跟踪后端响应,例如保存消息)

if(event.handled !== true) {

    $message = $('<%= j render @message %>');
    chatbox.append($message);

    $(".chatboxtextarea").val("");
    $(".chatboxtextarea").focus();

    event.handled = true;
}

0 个答案:

没有答案