小程序 <web-view></web-view> 中使用 form 表单提交
在最近的小程序项目中,使用到了 <web-view></web-view> 内嵌 H5 页面,在 H5 中需要使用 form 表单提交数据。
H5 使用的技术框架是 vue+vuex,刚开始编码如下:
//form表单,v-model绑定数据
<form :action="url" ref="setForm" method="post">
<input type="hidden" v-model="id" name="id">
<input type="hidden" v-model="code" name="code">
<input type="hidden" v-model="dta" name="dta">
</form> //接口内提交表单数据
let form = this.$refs.setForm;
this.id = res.data.id;
this.code = res.data.code;
this.dta = res.data.data;
form.submit();
联调发现这样写,v-model 内的参数没有赋值。亲测以下两种方法都可以拿到值:
解决方法1:v-model 结合延时处理
//接口内提交表单数据
let form = this.$refs.setForm;
this.id = res.data.id;
this.code = res.data.code;
this.dta = res.data.data;
setTimeout(function(){
form.submit();
},500);
解决方法2:使用 document 创建元素
//form表单
<form :action="url" ref="setForm" method="post">
</form> //接口内提交表单数据
let form = this.$refs.setForm; arr = [{
name: 'id',
val: res.data.id
},
{
name: 'code',
val: res.data.code
},
{
name: 'dta',
val: res.data.data
}]; for(let p in arr) {
let input = document.createElement('input');
input.setAttribute('name': arr[p].name);
input.setAttribute('code': arr[p].code);
input.setAttribute('dta': arr[p].data);
input.setAttribute('type': 'hidden');
} form.submit();
这样写在 H5 中访问是没有问题的,但是当在小程序的环境中访问时问题来了:form-data 里根本没有数据!
原因在于:web-view 与 form-data 不能同时使用。
解决方法:改为 get ,亲测可行。(可以修改 form 的 enctype 为 application/x-www-form-urlencoded 试一下,不过这种方法还未验证)
//form表单
<form :action="url" ref="setForm" method="get">
</form>
小程序 <web-view></web-view> 中使用 form 表单提交的更多相关文章
- 微信小程序--问题汇总及详解之form表单
附上微信小程序开发文档链接:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/MINA.html form表单: 当点击 <form/> ...
- SpringMVC中前端Form表单提交后跳转不过去的问题
今天晚上打算谢谢Spring整合这个内容,写的差不多之后运行 出现了各种问题 逐一排查 首先有一个(MyEclipse10) 一: class path resource [spring-mvc.xm ...
- 2017-01-11小程序form表单提交
小程序form表单提交 1.小程序相对于之前的WEB+PHP建站来说,个人理解为只是将web放到了微信端,用小程序固定的格式前前端进行布局.事件触发和数据的输送和读取,服务器端可以用任何后端语言写,但 ...
- input file 在开发中遇到的问题 类似ajax form表单提交 input file中的文件
最近在做项目的过程中遇到个问题,在这里做个记录防止日后忘记 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为 ...
- ajax form表单提交 input file中的文件
ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了 ...
- SpringMVC中使用bean来接收form表单提交的参数时的注意点
这是前辈们对于SpringMVC接收表单数据记录下来的总结经验: SpringMVC接收页面表单参数 springmvc请求参数获取的几种方法 下面是我自己在使用时发现的,前辈们没有记录的细节和注意点 ...
- Javascript中的Form表单知识点总结
Javascript中的Form表单知识点总结 在HTML中,表单是由form元素来表示的,但是在javascript中,表单则由HTMLFormElement类型,此元素继承了HTMLElement ...
- javaWeb 中前端Form表单数据处理(手动拼json)
在前端我们会用到最多的就是form表单提交数据,在form表单中有很多都是自动将数据传到后台,然后通过实体来接受的,但是有的时候我们就是需要在前端就拿到这个Form表单的数据,这是我们就可以自己讲数据 ...
- springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据
springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据 表单html: <form class="form-horizontal ...
随机推荐
- 中国移动能力开放商店OneNET View数据可视化公测 10分钟轻便生成行业可视化界面
随着云计算,5G技术,人工智能等底层技术的发展,万物互联时代已经到来,同时带来了海量数据,如何效果好.低成本.短时间的表现据,成为物联网行业从业者和公司的当务之急. OneNET View传统的数据展 ...
- jpa使用过程中出现问题记录[持续更新]
1.自定义JPQL语句,出现Not supported for DML operations 错误. 解决方案:在@Query注解上面加上@Modifying注解. //出现问题的代码 @Query( ...
- 逆向学习-PE文件格式
从DOS头到节区头是PE头部分,其下的节区合称PE体.文件中使用偏移(offset),内存中使用VA(Virtual Address,虚拟地址)来表示位置.文件加载到内存时,情况就会发生变化(节区的大 ...
- DirectX11 With Windows SDK--10 摄像机类
前言 DirectX11 With Windows SDK完整目录:http://www.cnblogs.com/X-Jun/p/9028764.html 由于考虑后续的项目需要有一个比较好的演示环境 ...
- VMware Workstation14 安装Ubuntu18.04
1 下载Vmware Workstations14破解版 百度网盘链接:https://pan.baidu.com/s/12yVxoPCJUAmdts4SUdzndg 提取码:bs0g 2 下载Ubu ...
- shell脚本实现并发控制
++++++++++++++++++++++++++++++++++++++++++++++++++标题:shell脚本实现并发控制内容:以ping测试主机存活为例,讲述如何通过命名管道文件以及描述符 ...
- vscode 安装插件SVN 报vscode SVN not found
1.软件环境 svn客户端安装的是TortoiseSVN: vscode 安装的为SVN的插件: 2. 问题现象 vscode打开文件夹后右下角提示如下报错:SVN not found. Instal ...
- Java数据库学习之SQL语句动态拼接
public class UserDaoImpl implements UserDao { @Override public List<User> getUserByPage(PageIn ...
- 定时任务调度工作(学习记录 三)timer其他重要函数
TimerTask的两个重要函数: 1.cancel() 作用: 取消当前TimerTask里的任务 演示: 先在继承了TimerTask的类中添加一个计时器,然后在run方法中合适的位置添加canc ...
- 缓存,热点key
热点Key问题的发现与解决 https://help.aliyun.com/document_detail/67252.html 缓存击穿.失效以及热点key问题 https://www.jiansh ...