我在jQuery中找到了一些有趣的东西,我想让一些人比我更了解它,看看是否有解决方案。所以我想在我的页面上提交所有表单时回发页面的滚动位置。我可以通过执行以下操作来完成此操作:
$('form').submit(function() {
$(this).append('<input type="hidden" name="scroll_position" value="' + $(document).scrollTop() + '" />');
return true;
}
当用户点击或按下提交按钮时,这可以正常工作,但有时我会触发.submit()事件。例如:
$('button').click(function() {
...
// Doing something special here
...
$(this).parents('form')[0].submit();
}
无论是通过.submit()调用还是用户提交表单,我都会如何在提交页面时调用自定义提交回调?
答案 0 :(得分:3)
如果你不想要,不需要制作新功能。
你只需要使用jquery的.submit()
,你的工作就完成了。检查区别。
$('button').click(function() {
...
// Doing something special here
...
var form = $(this).parents('form')[0];
$(form).submit();
}
快乐编码。
答案 1 :(得分:1)
您可以为此创建一个函数并在提交之前调用它:
function storePosition(){
$('form').append('<input type="hidden" name="scroll_position" value="' + $(document).scrollTop() + '" />');
}
稍后你可以这样做:
$('form').submit(function() {
storePosition();
return true;
}
或者:
$('button').click(function() {
...
// Doing something special here
...
storePosition();
$(this).parents('form')[0].submit();
}
答案 2 :(得分:1)
function myFrmSubmit(){
$(this).append('<input type="hidden" name="scroll_position" value="' + $(document).scrollTop() + '" />');
return true;
}
$('form').submit(myFrmSubmit);
$('button').click(function() {
...
// Doing something special here
...
myFrmSubmit();
$(this).parents('form')[0].submit();
}
答案 3 :(得分:0)