gpt4 book ai didi

javascript - 如何将 onchange ="form.submit()"移动到 script 标签中?

转载 作者:行者123 更新时间:2023-11-28 13:42:55 24 4
gpt4 key购买 nike

我有以下 html:

<form id="forum_jump" action="http://www.url.com/index.php?" method="get">
<fieldset>
<select name="showforum" id="showforumJump" class="input_select">
<optgroup label="Redirect">
<option value="0">Frontpage</option>
<option value="1">Forum 1</option>
<option value="2" selected="selected">&nbsp;&nbsp;|-- Forum 2</option>
<option value="3">&nbsp;&nbsp;|-- Forum 3</option>
<option value="4">&nbsp;&nbsp;|-- ...</option>

</optgroup>
</select>

<input type="submit" value="Ok" class="input_submit alt" id="forum_jump_submit">
</fieldset>
</form>

我知道我可以更改选择 html 以告诉它在选择更改时提交表单:

<select name="showforum" id="showforumJump" class="input_select" onchange="forum_jump.submit()">

但是我如何将其转换为脚本 block ?我尝试在 Chrome 开发控制台中手动运行如下内容:

document.getElementById('showforumJump').addEventListener("change", forum_jump.submit(), false );

我也尝试过使用attachEvent,然后我读到它似乎只适用于IE(?)。

addEventListener 以“未定义”写入控制台结束,然后立即重新提交表单并重新加载页面。我希望控制台等待我在重新提交之前更改选择的值。当我尝试在网站上实现时,我也尝试将其包装在 window.onload 内,但它只是以无限循环结束。

我对 addEventListener 有什么误解,这里出了什么问题?老实说我看不出来。

这可能是非常简单的事情,但我已经尝试和研究了一段时间,只是无法弄清楚我做错了什么。

最佳答案

考虑以下代码:

document.getElementById('showforumJump').addEventListener("change", forum_jump.submit(), false );

您正在将“change”事件绑定(bind)到forum_jump.submit() 的输出。尝试将其包装在函数中,以防 forum_jump.submit() 依赖于此符号:

document.getElementById('showforumJump').addEventListener("change", function() { forum_jump.submit.apply(forum_jump, arguments); }, false );

如果在不带参数的情况下调用submit(),这对于您的情况可能有点过分了。您可能只需删除括号即可:

document.getElementById('showforumJump').addEventListener("change", forum_jump.submit, false );

apply 结构是转发所有传递给函数的参数,这里可能不需要。有关范围和“this”符号的说明,请参见示例:

http://odetocode.com/blogs/scott/archive/2007/07/04/function-apply-and-function-call-in-javascript.aspx

关于javascript - 如何将 onchange ="form.submit()"移动到 script 标签中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16606158/

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