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

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

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

js:(自定义提交方法)

  1. $(document).ready(function(){
  2. function decodeQuery() {
  3. var search = window.location.href; //获取跳转到本页面的路由 http://127.0.0.1:5000/task_mgm/taskinfo_editID=29?pageType=minePage
  4. return search.split('=')[1].split('?')[0];
  5. }
  6. // 获取任务id
  7. var taskId = decodeQuery();
  8. // 提交评论
  9. $("#form_comment").submit(function (event) {
  10. event.preventDefault(); // 阻止form表单的默认提交路径:action指定的路径
  11. var comment = $('#comment').val();
  12. var data = {
  13. "comment": comment
  14. };
  15. $.ajax({
  16. url: "/task_mgm/taskinfo_comment=" + taskId, // 可灵活传参
  17. type: "POST",
  18. data: JSON.stringify(data),
  19. contentType: "application/json",
  20. dataType: "json",
  21. success: function (resp) {
  22. if (resp.error == 'OK') {
  23. alert('评论成功');
  24. $('#comment').val('');
  25. } else {
  26. alert('评论失败');
  27. }
  28. }
  29. })
  30. })
  31. })

flask:

  1. # 提交评论
  2. @task_mgm.route('/taskinfo_comment=<int:num>', methods=['GET', 'POST'])
  3. @sso_wrapper
  4. def taskinfo_comment_form_fun(num):
  5. req_data = request.get_json() # 获取json数据参数
  6. comment = req_data.get('comment')
  7. comment = Comment(content=comment, taskId=num, userId=2)
  8. db.session.add(comment)
  9. db.session.commit()
  10. 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. robotframework添加自定义的API,在Lib\site-packages路径下放入写好的py文件。

    其格式有要求,但不明白为什么 import os.pathimport subprocessimport sys class LoginLibrary(object): def __init__(se ...

  2. idea 修改设置 检测方式为 es6

    intellij idea 14不支持ES6语法!javascript 文件内到处飘红 file>settings>Lauguages & Frameworks>javasc ...

  3. centos 7 安装mqtt 修改用户名和密码

    我先新买个Centos 的系统 咱登录呢就用这个软件,主要是方便,可以少安装一些东西 根据自己的系统选择,上面的是32位的. 输入 root 回车 输入密码然后回车  输入的时候什么也不显示 输入 c ...

  4. Java多线程学习(三)---线程的生命周期

    线程生命周期 摘要: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态.在线程的生命周期中,它要经过新建(New).就绪(Runnable).运行(Running).阻塞 ...

  5. SpringBoot整合Swagger2搭建API在线文档

    Swagger,中文"拽"的意思,它是一个功能强大的在线API在线文档,目前它的版本为2.x,所以称为Swagger2.Swagger2提供了在线文档的查阅和测试功能.利用Swag ...

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

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

  7. gohost -- go 开发的命令行hosts配置管理工具

    前几天在微博上看到有人推荐了lazygit这个工具,让人眼前一亮,什么时候命令行也可以这么抢到了,

  8. 朱晔和你聊Spring系列S1E4:灵活但不算好用的Spring MVC

    阅读PDF版本 本文会以一些例子来展现Spring MVC的常见功能和一些扩展点,然后我们来讨论一下Spring MVC好用不好用. 使用SpringBoot快速开始 基于之前的parent模块,我们 ...

  9. Node 系列之path模块

    //引用该模块 var path = require("path"); 1.路径解析,得到规范化的路径格式 //对window系统,目录分隔为'\', 对于UNIX系统,分隔符为' ...

  10. Linux进程与线程的区别

    进程与线程的区别,早已经成为了经典问题.自线程概念诞生起,关于这个问题的讨论就没有停止过.无论是初级程序员,还是资深专家,都应该考虑过这个问题,只是层次角度不同罢了.一般程序员而言,搞清楚二者的概念, ...