在表单提交时保持当前位置?

时间:2015-11-15 15:25:40

标签: javascript

在提交表单而不是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>

3 个答案:

答案 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读取数据并让它在页面加载时滚动到该位置。