form表单只提交数据而不进行页面跳转的解决方案

转载

  将数据提交到saveReport(form的action指向)页面,但是页面又不进行跳转,即保持当前页面不变呢?利用jquery的ajaxSubmit函数以及form的onsubmit函数完成

  一般的form提交操作写法为:

<form action="saveReport.htm" method="post">
  ……
  <input type="submit" value="保存报告"/>
</form> 
<form action="{{ url_for(‘zapapi.zap_task_delete‘) }}" method="post" style="display: inline">
  <input  name="session_name" value="{{ i[2] }}" type="hidden">
  <input  name="zap_server_addr" value="{{ i[3] }}" type="hidden">
  <button id="scan_log_delete{{ i[2] }}" class="btn red" type="submit" name="delete" value="delete"><i class="icon-remove"></i> 删除</button></form>

点击submit按钮或直接回车可以将数据提交到saveReport页面,但是提交后也会跳转到saveReport页面

如何做到 
将数据提交到saveReport(form的action指向)页面,但是页面又不进行跳转,即保持当前页面不变呢?? 
这种需要在load一个页面的时候尤其迫切。

利用jquery的ajaxSubmit函数以及form的onsubmit函数完成,如下:

<form id="saveReportForm" action="saveReport.htm" method="post" onsubmit="return saveReport();">
  <input type="submit" value="保存报告"/>
</form> 
<form id="stopstart{{ i[2] }}" onsubmit="return Stop{{ i[2] }}()" style="display: inline">
    <button id="startstop{{ i[2] }}" class="btn yellow" type="submit" name="stop" value="stop"><i id="start_stop{{ i[2] }}" class="icon-stop"></i> 停止</button></form>

form增加一个id用于在jquery中调用,增加一个onsubmit函数用于submit前自己提交表单

saveReport对应函数为 :

<script>
function saveReport() {
// jquery 表单提交
  $("#showDataForm").ajaxSubmit(function(message) {
  // 对于表单提交成功后处理,message为提交页面saveReport.htm的返回内容
  }); 

return false; // 必须返回false,否则表单会自己再做一次提交操作,并且页面跳转
}
</script>
<script>
            /**
             * @return {boolean}
             */
            function Stop{{ i[2] }}() {
                $.ajax({
                type: "post",
                url: "{{ url_for(‘zapapi.zap_task_stop‘) }}",
                data: "session_name={{ i[2] }}&zap_server_addr="+$(‘#server{{ i[2] }}‘).text(),
                success: function(msg) {
                    if(msg.success){
                        alert(msg.message)
                        $(‘#report{{ i[2] }}‘).removeAttr(‘disabled‘);
                        $(‘#startstop{{ i[2] }}‘).text("启动");
                        $(‘#startstop{{ i[2] }}‘).removeClass(‘yellow‘);
                        $(‘#startstop{{ i[2] }}‘).addClass(‘blue‘);
                        $(‘#startstop{{ i[2] }}‘).prepend(‘<i id="start_stop{{ i[2] }}"></i>‘);
                        $(‘#start_stop{{ i[2] }}‘).addClass(‘icon-play‘);
                        $(‘#stopstart{{ i[2] }}‘).attr({"onsubmit": "return Start{{ i[2] }}()"})

                        $(‘#basic_opener{{ i[2] }}‘).text("申请");
                        $(‘#basic_opener{{ i[2] }}‘).removeClass(‘green‘);
                        $(‘#basic_opener{{ i[2] }}‘).addClass(‘gray‘);
                        $(‘#basic_opener{{ i[2] }}‘).prepend(‘<i id="icon{{ i[2] }}"></i>‘);
                        $(‘#icon{{ i[2] }}‘).addClass(‘icon-plus‘);
                        $(‘#server{{ i[2] }}‘).text("");
                        $(‘#form{{ i[2] }}‘).removeAttr(‘onsubmit‘);
                        $(‘#form{{ i[2] }}‘).attr({"onsubmit": "return ZAP_SERVER_APPLY{{ i[2] }}()"});

                    } else {
                        alert(msg.message)
                    }
                    }
                });
            return false;
            }
        </script>
时间: 2024-10-12 10:46:20

form表单只提交数据而不进行页面跳转的解决方案的相关文章

Form表单只提交数据,页面不跳转,返回表单值

html代码: <form method="post" action="Handler/UserHandler.ashx?action=Test" onsubmit="return RuturnLoginResult();" id="UserLoginFrom"><div><p><label>用户名:</label><input type="text&

通过js,修改所有form表单,提交JSON格式的数据

直接上代码 <script>$(function(){ //获取网页中所有的form表单 $("form").each(function(){ //注册表单的提交事件 $(this).submit(function(event) { //屏蔽表单的注册 event.preventDefault(); //获取url var url = $(this).attr("action"); request(url, 'POST', JSON.stringify(

使用ajax方法实现form表单的提交

转http://www.cnblogs.com/han-1034683568/p/7199168.html 写在前面的话 在使用form表单的时候,一旦点击提交触发submit事件,一般会使得页面跳转,页面间的跳转等行为的控制权往往在后端,后端会控制页面的跳转及数据传递,但是在某些时候不希望页面跳转,或者说想要将控制权放在前端,通过js来操作页面的跳转或者数据变化. 一般这种异步的操作,我们都会想到ajax方式,因此在实现了功能后就整理了这篇文章,通过ajax方法实现form表单的提交并进行后续

JavaWeb学习总结(十一):Session解决form表单重复提交

在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提交的常见应用场景 有如下的form.jsp页面 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <!DOCTYPE HTML>

form表单submit提交内容,跟ajax异步提交form表单的区别,

因为开发一个小细节,本来是上传文件,填写文件名进行ajax提交,但是没有获取到文件的绝对地址, 所以使用了form表单提交文件,然后又觉得form表单+ajax提交联系起来比较好,不用改动太多代码. 区别: Form表单提交:一般都会进行页面跳转: Ajax异步提交:可以不进行页面跳转: Form表单提交 <body> <div id="forms”> <form id="form1" action="/users/login"

Extjs的form表单自动装载数据(通过Ext.data.Model的代理加载数据)

在做项目的时候遇到一个问题,以前双击grid页面一行数据的时候,会吧双击这一行的数据自动加载到双击的页面(Ext的弹出框),可以通过this.down(''form).getForm().loadRecord(record)来自动加载,可是现在有一个需求就是双击grid一行弹出一个新的浏览器页面(不是ext的弹出框,通过window.open()实现),只能把双击的id传到页面,再重新查数据手动赋值,如果一个页面字段很多,一个一个赋值是很辛苦的,所以就想能不能自动装载数据 通过长时间研究发现,t

JavaScript 创建一个 form 表单并提交

<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input onclick="MakeForm()" type="button" class="btn grey"

form表单的提交方式

开发中表单提交是很常见的,表单的提交方式也多种方式. 1.使用submit按钮提交表单  <input type="submit"/> <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>form表单提交方式</title> </head> <body>

php 解决和避免form表单重复提交的方法

在提交表单的时候,可能遇到网速等导致页面突然加载变慢,用户重复地点击提交按钮,将在数据库产生多条数据,导致不可控情况. 比如下面的情况就会导致表单重复提交: 点击提交按钮两次. 点击刷新按钮. 使用浏览器后退按钮重复之前的操作,导致重复提交表单. 使用浏览器历史记录重复提交表单. 浏览器重复的HTTP请求. 网页被恶意刷新. 下面是几种解决的方法: 一:利用js设置按钮点击后变成灰色 $(document).ready(function(){ $(input:submit).click(){ s