我有一个用于应用内聊天的表单,它在数据库中创建消息本身,然后通过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;
}