gpt4 book ai didi

javascript - 提交表单时不要自动滚动到顶部。留在当前位置

转载 作者:行者123 更新时间:2023-11-30 16:28:45 24 4
gpt4 key购买 nike

我不想在提交表单时自动向上滚动页面。我想保持与提交表单时相同的位置。我该怎么做?

<script type="text/javascript">
var frm = $('#form');
frm.submit(function (ev) {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
alert('ok');
}
});

ev.preventDefault();
});

<script>
function submitForm2()
{
document.getElementById('form').submit();
popsup();
}
</script>

<div onclick='submitForm2();'></div>

<form id='form' action='' method='post'>
<input name='test' value="ok">
</form>

我尝试了链接中的解决方案;页面在新窗口打开返回false结果,提交后页面在新窗口自动滚动到顶部。

“#”或#! in action = 表单未提交且页面滚动到顶部。

javascript:void(0); - 表单没有提交,页面仍然滚动到顶部

最佳答案

document.getElementById('form').submit();不会触发 frm.submit处理程序。请改用 $('#form').submit() ,因为 jQuery 版本的 submit() 会调用任何 onsubmit 处理程序,而普通 Javascript submit() 会绕过它们。

编辑

另一件事 - 添加提交处理程序函数的脚本会在表单呈现之前立即执行。所以它可能会失败。还有你好像有点任性<script>标记在那里。试试这个:

<script type="text/javascript">
$(document).ready(function() {
var frm = $('#form');
frm.submit(function (ev) {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
alert('ok');
}
});
ev.preventDefault();
});
});

function submitForm2() {
$('#form').submit();
}
</script>

关于javascript - 提交表单时不要自动滚动到顶部。留在当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33682330/

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