需求场景:有时候单纯的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:Day43 抽屉

    1.关于inline-block和float的理解 inline-block和float都可以实现块级标签放在同一行上,inline不好设置左右对齐,只能通过margin和padding调节.而flo ...

  2. 网站建设部署与发布--笔记4-部署mysql

    部署MySQL 1.更新操作系统 $ yum update -y 2.安装mysql数据库,在CentOS 7.2 中,使用了mariadb替代了官方的mysql $ yum install mari ...

  3. Redis之过期时间

    1.命令介绍 expire key seconds    设置key的有效时间,单位为秒expire命令返回1表示设置成功,返回0表示键不存在或设置失败. ttl keyttl命令返回值是键的剩余时间 ...

  4. java kafka单列模式生产者客户端

    1.所需要的依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht ...

  5. 初学Python——介绍一些内置方法

    1.abs()求绝对值 a=abs(-10) print(a) # 输出:10 2.all() 用来检测列表元素是否全部为空.0.False print(all([0,5,4])) #当列表所有元素都 ...

  6. PAT A1095 Cars on Campus (30 分)——排序,时序,从头遍历会超时

    Zhejiang University has 8 campuses and a lot of gates. From each gate we can collect the in/out time ...

  7. 【P1941】 飞扬的小鸟

    题目描述 游戏界面是一个长为 nn,高为 mm 的二维平面,其中有 kk 个管道(忽略管道的宽度). 小鸟始终在游戏界面内移动.小鸟从游戏界面最左边任意整数高度位置出发,到达游戏界面最右边时,游戏完成 ...

  8. [Micropython]TPYBoard v202 利用单片机快速实现家庭智能控制平台

    一提到智能家庭,大家可能首先想到的是各种大佬级公司搞的牛逼产品,或者说是创新产品.想想就觉得很复杂,有的用工控机,有的用树莓派,还有的用arduino,不管用什么,都绕不过服务器进行控制,比如yeel ...

  9. Linux并发与同步专题 (3) 信号量

    关键词:Semaphore.down()/up(). <Linux并发与同步专题 (1)原子操作和内存屏障> <Linux并发与同步专题 (2)spinlock> <Li ...

  10. Web组件流畅拖动效果

    拖动效果,可以形象的帮助用户处理一些问题,比如Windows删除文件,只需将文件拖动至回收站即可.比起右键显得更形象,我觉得更好玩一点^_^.当然,在其他许多方面,其实也有用到拖动效果,只是他们不是那 ...