[技术博客] 微信小程序的formid获取

时间:2024-01-18 09:16:38

微信小程序的formid获取

formId的触发

微信小程序可以通过收集用户的formid,获取formid给用户主动推送微信消息。获取formid有两个途径,一个是触发一次表单提交,或者触发一次支付行为。如果要给用户主动推送模板消息,就需要拿到足够多的formid。

用表单的方法一定需要绑定bindsubmit,button的form-type设置为submit,在js代码中可以通过e.detail.formId 获取formId。

实例:

<form bindsubmit="submit" report-submit='true' class='formid'>
<button form-type="submit"></button>
</form>
submit: function (e) {
console.log(e.detail.formId);
}

获取formid的tips

如果没有点击事件,可以把button设置为透明的,在每一处点击都可以收集formId

如果想同时触发formid和点击事件,可以采用如下方法:

1、在点击事件的外层套上form和button,但是需要修改button的默认样式,相当于在外面套一层透明的蒙版。

2、直接用button绑定点击事件,把要触发的函数写入。

3、在点击事件内嵌套form和button,也需要修改button的默认样式。

去除button默认样式

这是button的默认样式:

button {
position:relative;
display:block;
margin-left:auto;
margin-right:auto;
padding-left:14px;
padding-right:14px;
box-sizing:border-box;
font-size:18px;
text-align:center;
text-decoration:none;
line-height:2.55555556;
border-radius:5px;/*可以改成0,去除圆角*/
-webkit-tap-highlight-color:transparent;
overflow:hidden;
color:#000000;
background-color:#F8F8F8;/*按钮默认背景色是灰色的,可以把值改为#fff白色*/
}

去除button的边框:使用::after 伪类选择器,因为button的边框样式是通过::after方式实现的,如果在button上定义边框就会出现两条边框线,所以我们可以使用::after的方式去覆盖默认值。

button::after {
border: none;
}

button::after{ border: none; }