gpt4 book ai didi

javascript - onsubmit 函数未被调用

转载 作者:行者123 更新时间:2023-11-30 06:02:07 25 4
gpt4 key购买 nike

我正在设计一个基于 AJAX 的留言箱。 http://businessgame.be/shoutbox.php

该脚本在 google chrome 中运行完美,但其他浏览器并不像我预期的那样运行。

要大声说出一条新消息,有一个拥有输入文本字段的表单。当按下 enter 时,表单正在提交,所以我省略了提交按钮,因为按下 enter 就足够了。

<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>

shout 函数如下所示:

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;
}

通常情况下,脚本应该调用 shout 函数,AJAX 会发送请求添加 shout 然后返回 false,这样表单就不会被提交。

但在除 Google Chrome 之外的所有浏览器中,表单都会被提交。我在函数中放入了一个 alert() 来检查它是否被调用或编码错误,但没有显示警报。

最佳答案

嗯,出于某种原因,我无法在其他浏览器中使用 onsubmit 函数。与其拼命地继续寻找修复方法,不如决定采用不同的方法。现在我只是向文本框添加了一个监听器,以检查何时按下某个键是否为回车键,然后调用该函数。

这似乎可行,但仍然必须删除表单,否则它会被提交 ^^。

所以现在我得到了这样的东西:

function shoutEnterListener() {
// Get object
var domObject = document.getElementById("txtShout");

// Get shoutbox html code
if(domObject) {
domObject.onkeydown = shoutEnter;
domObject.onkeypress = shoutEnter;
}
}

function shoutEnter(e) {
var keyCode;

// Check which key has been pressed
if (window.event) {
keyCode = window.event.keyCode;
} else {
keyCode = e.which;
}

// If enter, shout!
if (keyCode == 13) {
shout();
}
}

shoutEnterListener() 在初始化函数中被调用。这也证明没有任何编码错误,只是函数根本没有被调用。

如果您仍然找到了上一个问题的解决方案,请告诉我,因为这是有点乏味和密集的代码。

关于javascript - onsubmit 函数未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7707317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com