0
當我在聊天中發佈消息時,它不會讓我再發帖。我相信這是與相關的代碼發送:我正在創建一個聊天,但每次發送消息時,都不會讓我發送另一條消息,就像表單不起作用一樣?
window.typing = false;
var posted = 0;
var canPost = 1;
var donotrefresh = 0;
document.forms['send'].addEventListener('submit', function (event) {
event.preventDefault();
if (!this.message.value || !canPost) {
return 0;
}
var form = this;
var message = this.message.value;
this.message.value = "";
this.message.focus();
var ajax = new XMLHttpRequest();
posted = 1;
canPost = 0;
chat.refresh();
chat.messages.scrollTop = 0;
ajax.onreadystatechange = function() {
if (ajax.readyState >= 4 && ajax.status == 200) {
if (!ajax.responseText) {
canPost = 1;
posted = 0;
}
}
}
ajax.open("GET", "/chat/ajax.php?req=post&chatmsg=" + encodeURIComponent(message), true);
ajax.send(null);
}, false);
這裏是我提交代碼:
<form name="send" style="height:100px;width:100%">
<input type="text" name="message" style="width:60%;height:2em;resize:vertical;opacity:0.8;" maxlength="220" placeholder="Your message to send..." required />
<input type="submit" value="Send" style="vertical-align:top;opacity:0.8;" />
</form>
爲什麼這個'canPost = 0'? – callback 2015-04-05 08:18:53
你有什麼嘗試?當你「不能再發布」時,你看到了什麼確切的行爲?你在瀏覽器的JavaScript控制檯中尋找什麼? – 2015-04-05 08:19:16
您確定ajax請求成功完成嗎?如果不是,canPost永遠不會再次設置爲1,因此您的提前退貨將取消進一步發送消息的方法。或者看看你的javascript控制檯的「網絡」選項卡,或者向回調函數(設置canPost = 1的位置)插入一個斷點(或簡單的日誌記錄輸出) – 2015-04-05 08:30:43