微信小程式 表單驗證
阿新 • • 發佈:2019-02-06
Wxml
<form bindsubmit="formSubmit" bindreset="formReset">
<input name="name" class="{{whoClass=='name'?'placeholderClass':'inputClass'}}" placeholder="請填寫您的姓名" type="text" confirm-type="next" focus="{{whoFocus=='name'?true:false}}" bindblur="nameBlurFocus" />
<radio-group name="gender" bindchange="radioChange">
<radio value="0" checked />女士
<radio value="1" />先生
</radio-group>
<input name="mobile" class="{{whoClass=='mobile'?'placeholderClass':'inputClass'}}" type="number" maxlength="11" placeholder="請填寫您的手機號" bindblur="mobileBlurFocus" focus="{{whoFocus =='mobile'?true:false}}" />
<input name="company" class="{{whoClass=='company'?'placeholderClass':'inputClass'}}" placeholder="公司名稱" type="text" confirm-type="next" focus="{{whoFocus=='company'?true:false}}" />
<input name="client" class="{{whoClass=='client'?'placeholderClass':'inputClass '}}" placeholder="繫結客戶" type="text" confirm-type="done" focus="{{whoFocus=='client'?true:false}}" />
<button formType="submit">提交</button>
</form>
<loading hidden="{{submitHidden}}">
正在提交...
</loading>
app.js
import wxValidate from 'utils/wxValidate'
App({
wxValidate: (rules, messages) => new wxValidate(rules, messages)
})
news.js
var appInstance = getApp()
//表單驗證初始化
onLoad: function () {
this.WxValidate = appInstance.WxValidate(
{
name: {
required: true,
minlength: 2,
maxlength: 10,
},
mobile: {
required: true,
tel: true,
},
company: {
required: true,
minlength: 2,
maxlength: 100,
},
client: {
required: true,
minlength: 2,
maxlength: 100,
}
}
, {
name: {
required: '請填寫您的姓名姓名',
},
mobile: {
required: '請填寫您的手機號',
},
company: {
required: '請輸入公司名稱',
},
client: {
required: '請輸入繫結客戶',
}
}
)
},
//表單提交
formSubmit: function (e) {
//提交錯誤描述
if (!this.WxValidate.checkForm(e)) {
const error = this.WxValidate.errorList[0]
// `${error.param} : ${error.msg} `
wx.showToast({
title: `${error.msg} `,
image: '/pages/images/error.png',
duration: 2000
})
return false
}
this.setData({ submitHidden: false })
var that = this
//提交
wx.request({
url: '',
data: {
Realname: e.detail.value.name,
Gender: e.detail.value.gender,
Mobile: e.detail.value.mobile,
Company: e.detail.value.company,
client: e.detail.value.client,
Identity: appInstance.userState.identity
},
method: 'POST',
success: function (requestRes) {
that.setData({ submitHidden: true })
appInstance.userState.status = 0
wx.navigateBack({
delta: 1
})
},
fail: function () {
},
complete: function () {
}
})
}