我正在设计一个基于 AJAX 的喊话箱。 http://businessgame.be/shoutbox.php
该脚本在 google chrome 中完美运行,但其他浏览器的行为不像我预期的那样。
要喊出一条新消息,有一个表单,它拥有一个输入文本字段。按下回车时,表单正在提交,所以我省略了提交按钮,因为按下回车就足够了。
<form method="POST" action="" onsubmit="javascript: return shout();" enctype="multipart/form-data">
<input type="text" style="width: 100%;" name="txtShout" id="txtShout" maxlength="600" autocomplete="off" title="Shout!" placeholder="Shout!">
</form>
喊叫函数如下所示:
function shout() {
alert("test");
// Post shout and clear textField
if(getLength("txtShout")) {
AjaxUpdate("./includes/shout.php?message=" + getItemValue("txtShout"), refreshShoutBox);
setItemValue("txtShout", "");
}
// Stop submit
return false;
}
通常,脚本应该调用喊叫函数,AJAX 会发送一个添加喊叫的请求,然后返回 false,这样表单就不会被提交。
但在除 Google Chrome 之外的所有浏览器中,表单都会被提交。我在函数中放入了一个 alert() 来检查它是否被调用或编码错误,但没有显示警报。