需求场景:有时候单纯的form表单无法向后端传递额外的参数 比如需要action传递js异步生成的参数 ,form表单默认的action就无法满足需求,这时就需要我们自定义form表单的提交方式。

html:(向后台传递对任务的评论内容,默认缺点:不能携带任务id)

 <div>
<form action="#" id="form_comment">
<textarea id="comment" required="required" class="form-control" name="comment"
data-parsley-trigger="keyup" data-parsley-minlength="20" data-parsley-maxlength="100"
data-parsley-validation-threshold="10" placeholder="评论......"></textarea>
<div style="padding: 4px 0 0 0">
<button type="submit" class="btn btn-success" id='commentSb'
style="background: #fff;color: #0c0c0c;border-color: #CCC"><font
style="vertical-align: inherit;"><font style="vertical-align: inherit;">提交</font></font>
</button>
<button type="button" class="btn btn-primary" id='commentCel'><font
style="vertical-align: inherit;float: right"><font
style="vertical-align: inherit;">取消</font></font></button>
</div>
</form>
</div>

js:(自定义提交方法)

 $(document).ready(function(){
function decodeQuery() {
var search = window.location.href; //获取跳转到本页面的路由 http://127.0.0.1:5000/task_mgm/taskinfo_editID=29?pageType=minePage
return search.split('=')[1].split('?')[0];
}
// 获取任务id
var taskId = decodeQuery();
// 提交评论
$("#form_comment").submit(function (event) {
event.preventDefault(); // 阻止form表单的默认提交路径:action指定的路径
var comment = $('#comment').val();
var data = {
"comment": comment
};
$.ajax({
url: "/task_mgm/taskinfo_comment=" + taskId, // 可灵活传参
type: "POST",
data: JSON.stringify(data),
contentType: "application/json",
dataType: "json",
success: function (resp) {
if (resp.error == 'OK') {
alert('评论成功');
$('#comment').val('');
} else {
alert('评论失败');
}
}
})
})
})

flask:

# 提交评论
@task_mgm.route('/taskinfo_comment=<int:num>', methods=['GET', 'POST'])
@sso_wrapper
def taskinfo_comment_form_fun(num):
req_data = request.get_json() # 获取json数据参数
comment = req_data.get('comment')
comment = Comment(content=comment, taskId=num, userId=2)
db.session.add(comment)
db.session.commit()
return jsonify(error='OK', emag='NO') # 返回数据json格式

利用 ajax自定义Form表单的提交方式的更多相关文章

  1. form表单的提交方式

    开发中表单提交是很常见的,表单的提交方式也多种方式. 1.使用submit按钮提交表单  <input type="submit"/> <!DOCTYPE htm ...

  2. jQuery Ajax 确定 form 表单 submit 提交成功

    使用 jQuery 提交表单,可以使用 同步方式(async: false). a.html 是 html 文件,a.php 是服务端文件,把 a.html 中表单的数据提交到 a.php 中,在提交 ...

  3. form表单以get方式提交时action中?后面的参数部分不生效

    form表单的提交方式是get方式,action="?sss=test",问号后面参数是接受不到的,谨记!

  4. 使用ajax方法实现form表单的提交(附源码)

    写在前面的话 在使用form表单的时候,一旦点击提交触发submit事件,一般会使得页面跳转,页面间的跳转等行为的控制权往往在后端,后端会控制页面的跳转及数据传递,但是在某些时候不希望页面跳转,或者说 ...

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

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 写在前面的话 在使用form表单的时候,一旦点击提交触发submit ...

  6. AJAX 实现form表单提交

    1.使用Ajax实现异步操作,点击登录按钮后,即触发form表单的提交事件,数据传输至后端 JSP: <script type="text/javascript" src=& ...

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

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  8. 基于form表单submit提交不跳转

    方法一:target <html> <body> <form action="" method="post" target=&qu ...

  9. JavaScript 创建一个 form 表单并提交

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

随机推荐

  1. 路飞学城-Python开发集训-第5章

    面向过程:核心是过程二字,过程是解决问题的步骤,相当于设计一条流水线,是机械式的思维方式 优点:复杂的问题流程化,进而简单化 缺点:可扩展性差 面向对象:核心是对象二字,对象就是特征与技能的结合体. ...

  2. Oracle查询数据库中所有表的记录数

    1.Oracle查询数据库中所有表的记录数,但是有可能不准建议用第二种方式进行查询 select t.table_name,t.num_rows from user_tables t 2.创建orac ...

  3. 多个窗口开启后,切换到指定title的窗口

    1.在google中,可以开启多个窗口,这是需要切换到自己需要的窗口去定位元素.如下: #获取两个窗口的标题 ${titles} Selenium2Library.Get Window Titles ...

  4. VMware中安装Centos 7

    1.点击“文件-新建”,如下图 2.选择"典型".下一步 3.选择”稍后安装操作系统”,下一步. 4.选择要安装的操作系统类型,下一步 5.填写虚拟机名称,设置虚拟机的存放位置,下 ...

  5. Java内存模型与线程安全

    原文链接:blog.edreamoon.com Java内存模型 计算机cpu的运算能力强大,但是数据的存储相对于cpu运算能力需要消耗大量时间,为了充分利用运算能力引入了缓存,但是也为计算机系统带来 ...

  6. Linux下如何让jar包程序在后台一直执行

    Linux下如何让Jar包程序在后台一直执行 shell命令 nohup java -jar xxx.jar & &:让程序后台执行. nohub:让程序控制台输出转移到nohub.o ...

  7. 吉特日化MES-日化生产称料基本步骤

    在日化行业称料是一个非常重要的环节,整个生产过程中称料所占据的时间也比较长,特别是遇到对料体精度高,量大的情况下称料都比较困难,汇总一下人工称料的基本过程: (1) 称量任务准备:根据生产工单或者生产 ...

  8. 面试:用 Java 逆序打印链表

    昨天的 Java 实现单例模式 中,我们的双重检验锁机制因为指令重排序问题而引入了 volatile 关键字,不少朋友问我,到底为啥要加 volatile 这个关键字呀,而它,到底又有什么神奇的作用呢 ...

  9. Intellij Idea 教程

    Intellij Idea 教程 [涵盖安装.配置.常见问题&技巧.Maven.Git.Tomcat.快捷键.项目配置等] 目录 入门............................. ...

  10. Pointcut 笔记

    教程 https://blog.csdn.net/kkdelta/article/details/7441829 http://www.cnblogs.com/youse/p/6564524.html ...