js中创建form表单
2016-03-29 10:30
573 查看
有的时候需要在js中创建form向controller提交数据,下面是在工作中遇到的一些问题和解决办法:
简单的用jquery创建form:
函数封装提交:
其中args为格式:{key:value,key1:valye2…},可以一个参数一个参数传,也可以直接传一个jsonString, 在controller中再转化为map,个人更喜欢后一种方法,直接用json的序列化工具(jsonmapper之类),反序列为map,再取值。
上面两种都是jquery创建form,在chrome下可正常使用,但是在firefox下不行,百度之,发现原因是:
经过研究发现,FireFox在提交页面表单时要求页面有完整的标签项,即
解决方法很简答,给把新建的form添加到一个现存节点即可。
上面的函数修改后代码如下:
另外还有一个问题,就是关于提交数据后是从本页面跳转还是新打开页面
可参见: http://blog.csdn.net/natian306/article/details/21527369
简单的用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
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享