js中创建form表单
来源:互联网 发布:织梦ajax提交表单 编辑:程序博客网 时间:2024/06/06 05:23
有的时候需要在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
0 0
- js中创建form表单
- 怎样用js创建Form表单并提交
- js创建Form表单并提交
- js动态创建Form表单并提交
- JS动态创建form表单提交参数
- js动态创建Form表单并提交
- 用JS提交参数创建form表单在FireFox中遇到的问题
- js中form表单的简单封装
- ExtJS创建Form表单
- js 修改form表单
- JS 提交form表单
- js form表单提交
- JS 提交form表单
- JS 提交form表单
- JS获取form表单
- js提交form表单
- JS 提交form表单
- JS 提交form表单
- Thinkpad E500在UEFI+GTP分区方案U盘安装Windows Server 2008 R2
- EL表达式手册
- PHP对编码的常用处理函数
- Eclipse配置(Mac版)
- C++ bitset类的使用与简介
- js中创建form表单
- 在MVC中处理异常的总结
- 面试题一
- mybatis批量更新
- HDOJ 2047 阿牛的EOF牛肉串
- java中foreach的使用格式
- Android图表第三方库enginechart的使用小结
- 在PHPstorm上安装thinkPHP
- 编程相关的资料汇总