在提交表单而不是comin到页面顶部时,如何保持当前位置?
<script>
$(document).ready(function(){
$('#ok').click(function(){
var dt=$('#form').serialize();
$.post('data.php',dt,function(data){
})
});
});
</script>
<script>
function submitnow() {
$('#form').submit();
}
</script>
<div onclick='submitnow();'></div>
<form action='' method='post' id='form'>
<input type="hidden" id="ok" name='ok' value="ok">
</form>
UPDATE 我很抱歉,我忘了发帖,我用onclick提交表格。但我认为只是将代码添加到函数中,但事实并非如此:/
<script>
function submitnow() {
$(document).ready(function(){
$('#form').submit(function(){
var dt=$(this).serialize();
$.post('data.php',dt,function(data){
});
return false;
});
});
}
</script>
这是我目前使用的代码,它将我滚动到顶部:
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('#form').submit(function(){
var dt=$(this).serialize();
$.post('data.php',dt,function(data){
});
return false;
});
});
</script>
<script>
function submitnow() {
$('#form').submit(function(){
});
}
</script>
<div onclick='submitnow();'></div>
<form action='' method='post' id='form'>
<input type="hidden" id="ok" name='ok' value="ok">
</form>
答案 0 :(得分:2)
要捕获提交事件并调用ajax而不是提交表单使用
$("#form").submit(function () {
var dt = $(this).serialize();
$.post('data.php',dt,function(data) {
});
return false;
});
感谢@dfsq的改进
<强>更新强>
请参阅此JSFiddle了解正在运行的ajax提交
答案 1 :(得分:0)
试试这个
$(document).ready(function(){
$('#ok').click(function(e){
e.prenevtDefault();
var dt=$('#form').serialize();
$.post('data.php',dt,function(data){
});
});
答案 2 :(得分:0)
你可以做三件事:
1)(不需要JavaScript)在页面提交时,在页面中要滚动到的位置添加命名锚点,并将名称添加到操作中。这将导致页面滚动到该位置。为此,您需要知道在创建页面时页面要滚动到的位置。
public class FbLoginActivity extends BaseActivity {
CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_fb_login);
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.i("fb","success");
}
@Override
public void onCancel() {
Log.i("fb","cancelled");
}
@Override
public void onError(FacebookException exception) {
Log.i("fb","stopped");
}
});
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
2)(需要JavaScript)使用ajax表单提交,以便不重新加载页面(请参阅JQuery示例的其他答案,了解如何执行此操作)
3)(需要JavaScript)将当前位置存储在cookie或本地存储中,让JavaScript读取数据并让它在页面加载时滚动到该位置。