我不想在提交表单时自动向上滚动页面。我想保持与提交表单时相同的位置。我该怎么做?
<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/