由于某种原因,我的onkeyup似乎被IE9的某些人解雇了两次。
我目前的功能如下:
document.getElementById("chatboxtextarea").onkeyup=function(e) {
e = e || window.event;
var msg = document.getElementById('chatboxtextarea').value;
if(e.keyCode != null) {
if (msg.replace(/\r/g, '\\\\r').replace(/\n/g, '') != "" && e.keyCode == 13) {
var textarea = document.getElementById('chatboxtextarea');
textarea.value = '';
var d = new Date();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();
var tD = curr_hour + ":" + curr_min;
var url = 'http://domain.com/sub/' + kanal + '/' + encodeURIComponent(_aNM) + '/' + encodeURIComponent(_sid) + '/' + encodeURIComponent(_aID) + '/' + encodeURIComponent(_pMsg) + '/' + encodeURIComponent(msg.replace(/\r/g, '').replace(/\n/g, '')) + '/' + encodeURIComponent(_hits);
var data = {};
var callback = function (data) { };
J50Npi.getJSON(url, data, callback);
} else if (msg.replace(/\r/g, '\\\\r').replace(/\n/g, '') == '') {
var textarea = document.getElementById('chatboxtextarea');
textarea.value = '';
}
}
};
这是一个基本的聊天输入字段。问题是服务器从这些IE9用户(有时)收到两条消息。
如何添加支票以查看人们是否在过去1秒内写过邮件?像垃圾邮件预防功能..我想这会解决问题吗?
有什么想法吗?
答案 0 :(得分:2)
人们是否可以相当快地按两次输入键?
任何时候我必须执行异步操作,我都会去掉输入。
在您的密码= = 13检查之后,首先检查textares是否已被禁用,如果已禁用,则忽略任何进一步的处理。 其次,将textarea设置为disabled。 第三,在J50Npi.getJSON();
成功时删除disabled属性textarea.setAttribute("disabled","disabled");
textarea.removeAttribute("disabled");