在最近的小程序项目中,使用到了 <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 表单提交的更多相关文章

  1. 微信小程序--问题汇总及详解之form表单

    附上微信小程序开发文档链接:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/MINA.html form表单: 当点击 <form/> ...

  2. SpringMVC中前端Form表单提交后跳转不过去的问题

    今天晚上打算谢谢Spring整合这个内容,写的差不多之后运行 出现了各种问题 逐一排查 首先有一个(MyEclipse10) 一: class path resource [spring-mvc.xm ...

  3. 2017-01-11小程序form表单提交

    小程序form表单提交 1.小程序相对于之前的WEB+PHP建站来说,个人理解为只是将web放到了微信端,用小程序固定的格式前前端进行布局.事件触发和数据的输送和读取,服务器端可以用任何后端语言写,但 ...

  4. input file 在开发中遇到的问题 类似ajax form表单提交 input file中的文件

    最近在做项目的过程中遇到个问题,在这里做个记录防止日后忘记 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为 ...

  5. ajax form表单提交 input file中的文件

    ajax form表单提交 input file中的文件 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为了 ...

  6. SpringMVC中使用bean来接收form表单提交的参数时的注意点

    这是前辈们对于SpringMVC接收表单数据记录下来的总结经验: SpringMVC接收页面表单参数 springmvc请求参数获取的几种方法 下面是我自己在使用时发现的,前辈们没有记录的细节和注意点 ...

  7. Javascript中的Form表单知识点总结

    Javascript中的Form表单知识点总结 在HTML中,表单是由form元素来表示的,但是在javascript中,表单则由HTMLFormElement类型,此元素继承了HTMLElement ...

  8. javaWeb 中前端Form表单数据处理(手动拼json)

    在前端我们会用到最多的就是form表单提交数据,在form表单中有很多都是自动将数据传到后台,然后通过实体来接受的,但是有的时候我们就是需要在前端就拿到这个Form表单的数据,这是我们就可以自己讲数据 ...

  9. springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据

    springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据 表单html: <form class="form-horizontal ...

随机推荐

  1. 如何取消Microsoft账户登录电脑

    手贱用Microsoft账户登录了一下笔记本里面的日历,TNND微软直接就把你电脑的登录账户直接改成了微软账户,花了1个小时才搞回去. 步骤如下: 0--脑残微软的设计,点了下日历,弹出下面这个,绝对 ...

  2. ThreadLocal源码解读

    1. 背景 ThreadLocal源码解读,网上面早已经泛滥了,大多比较浅,甚至有的连基本原理都说的很有问题,包括百度搜索出来的第一篇高访问量博文,说ThreadLocal内部有个map,键为线程对象 ...

  3. Django学习笔记(1)--第一个项目

    操作系统:Windows Python版本:python3.6 前置工作: pip install virtualenvwrapper #安装虚拟环境管理包 1.创建虚拟环境 mkvirtualenv ...

  4. 浅谈 Angular 项目实战

    为什么使用 Angular 我不是 Angular 的布道者,但如今痴迷 Angular,使用 Angular 做项目让我有一种兴奋感.目前的三大主流前端框架都研究过,博客中也有三者的相关教程,最早接 ...

  5. Var的用法解析

    C#关键字是伴随着.NET 3.5以后,伴随着匿名函数.LINQ而来, 由编译器帮我们推断具体的类型.总体来说,当一个变量是局部变量(不包括类级别的变量),并且在声明的时候初始化,是使用var关键字的 ...

  6. Arguments Optional 计算两个参数之和的 function

    创建一个计算两个参数之和的 function.如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果. 例如,add(2, 3) 应该返回 5,而 add ...

  7. MySQL数据库8.0.15 安装教程

    第一步:安装MySQL服务 这里下载完成的是一个压缩文件,直接将里面的‘mysql-8.0.15-winx64'文件夹解压到你想要安装的路径即可,我是直接安装在C盘的. 解压完后的文件路径如下图: 在 ...

  8. 2019-04-04 Mybatis学习知识点

    1. 比较#和$的区别 #是占位符?,$是字符串拼接.因此使用$的时候,如果参数是字符串类型,那么要使用引号 尽量使用#而不是$ 当参数表示表名或列名的时候,只能使用$ 2. 多参数时候 配置文件中使 ...

  9. knnsearch

    转载:https://blog.csdn.net/bushixiaofan/article/details/27700299 K近邻算法是找到K个最近的邻居. IDX = knnsearch(X,Y) ...

  10. MDK 编译错误和警告 使用时遇到的小问题

    main.c(32): warning:  #1-D: last line of file ends without a newline 这个是由于在main函数的“}”后,没有加回车. 只要在mai ...