有的时候需要在js中创建form向controller提交数据,下面是在工作中遇到的一些问题和解决办法:

简单的用jquery创建form:

var form  = $("<form method = 'post'></form>");
var input = $("<input type='hidden' name='name' value="+data+">");
form.append(input);
form.submit;

函数封装提交:

function StandardPost (url,args)
{var form = $("<form method='post'></form>");form.attr({"action":url});for (arg in args){var input = $("<input type='hidden'>");input.attr({"name":arg});input.val(args[arg]);form.append(input);}form.submit();
} 

其中args为格式:{key:value,key1:valye2…},可以一个参数一个参数传,也可以直接传一个jsonString, 在controller中再转化为map,个人更喜欢后一种方法,直接用json的序列化工具(jsonmapper之类),反序列为map,再取值。

上面两种都是jquery创建form,在chrome下可正常使用,但是在firefox下不行,百度之,发现原因是:
经过研究发现,FireFox在提交页面表单时要求页面有完整的标签项,即<html><head><title></title></head><body><form></form</body</html>这样的标签结构

解决方法很简答,给把新建的form添加到一个现存节点即可。
上面的函数修改后代码如下:

function StandardPost (url,args)
{var form = $("<form method='post'></form>");form.attr({"action":url});for (arg in args){var input = $("<input type='hidden'>");input.attr({"name":arg});input.val(args[arg]);form.append(input);}$("#someid").append(form);form.submit();
} 

另外还有一个问题,就是关于提交数据后是从本页面跳转还是新打开页面
可参见: http://blog.csdn.net/natian306/article/details/21527369

js中创建form表单相关推荐

  1. js中实现form表单动态提交

    最近遇到了调用某银行支付功能的需求 需要使用form表单提交进行传参 记录一下 //创建表单var form = document.createElement("form");// ...

  2. html表单通过js提交表单提交,JavaScript动态创建form表单并提交的实现方法

    本文实例讲述了JavaScript动态创建form表单并提交的实现方法.分享给大家供大家参考,具体如下: 页面布局有些复杂的情况下,可能需要在页面中动态创建一个 form,JavaScript 创建 ...

  3. button layui 点击事件_解决layui中的form表单与button的点击事件冲突问题

    解决layui中的form表单与button的点击事件冲突问题 layui的form表单位置和button标签的位置重合,会使得button的click事件得不到响应,如图: 蓝色底为form的位置, ...

  4. 在微信小程序中提交form表单

    怎么在微信小程序中提交form表单 发布时间:2021-04-07 16:26:31 来源:亿速云 阅读:1229 作者:Leah 栏目:web开发 活动:亿速云新用户活动,各类服务器大降价,满足绝大 ...

  5. JS动态模拟Form表单提交数据

    分享知识  传递快乐 JS动态模拟Form表单提交数据 <!DOCTYPE html> <html lang="en"> <head><m ...

  6. 一 创建form表单并实现后台数据的增删改查

    思路:form表单创建,提交后上传用户信息到数据库,创建后台,可实现增删改查. 1     enroll.php     <实现form表单的创建,并且可以提交到数据库中> <!DO ...

  7. 如何在WordPress中创建RSVP表单(简易)

    Are you planning a big event like a birthday party, fundraiser, or even a wedding? Then you need an ...

  8. HTML中的form表单有一个关键属性 enctype

    HTML中的form表单有一个关键属性 enctype=application/x-www-form-urlencoded 或multipart/form-data. 1.enctype=" ...

  9. antd-vue中的form表单label标签for导致点击文字触发输入框解决方案

    antd-vue中的form表单label标签for导致点击文字触发输入框解决方案 参考文章: (1)antd-vue中的form表单label标签for导致点击文字触发输入框解决方案 (2)http ...

最新文章

  1. 什么是光纤的波长?看看有哪些是你不知道的!
  2. 【最简便解法】1086 就不告诉你 (15分)_13行代码AC
  3. SpringCloud Gateway配置自定义路由404坑
  4. (转)Cobbler无人值守批量安装Linux系统
  5. java中接口回调_Java中的接口回调实例
  6. 静态类和非静态类的主要差别
  7. 今晚直播丨国产数据库入门:openGauss数据库的基本管理和SQL语句入门
  8. console的一些方法
  9. python中pycharm倒计时_pycharm中的快捷键和简单设置
  10. go语言io reader_如何从io.Reader 中读数据
  11. Atitit 知识结构化的艺术 目录 1. 知识信息结构化脑图 2 1.1. 散乱化模式 2 2. 直线排列 2 2.1.1. 直排 2 2.1.2. 链表模式 2 3. 树形排列 2 3.1.
  12. 网关支付、银联代扣通道、快捷支付、银行卡支付等网上常见支付方式接口说明...
  13. 人文社科开放数据库汇总
  14. 阿里云商标智能注册申请图文教程(亲踩坑)
  15. welearn综合教程网课答案
  16. html加密文件夹,怎么给文件夹加密
  17. 神经网络与误差反向传播算法
  18. 经纬度计算两地之间的距离(原理与方法)
  19. element 绘制饼状图(复制代码直接用),付效果图
  20. HDCTF2023 Writeup

热门文章

  1. Linux云服务器卸载安装MySql
  2. git提交代码报错解决方法 Git-remote Incorrect username or password ( access token )
  3. SLAM: 图像角点检测的Fast算法(时间阈值实验)
  4. andorid 查看OpenCv Mat的Debug信息
  5. Micronaut for Spring支持Spring Boot应用以Micronaut形式运行
  6. 『中级篇』Docker Cloud自动构建 Docker image(55)
  7. Facebook 被指收集用户数据:通过照片和文本
  8. 收购Roambi,SAP欲领导商务分析云迁移全球市场
  9. python处理进度条
  10. 【Python基础】07、Python类与面向对象