关键词分析,商丘网站建设优化推广,semseo是什么意思,学习网站建设要什么学历uniapp 扩展组件 uni-forms 的表单验证之 validateFunction 只响应一次 问题代码官方说明参考资料 问题代码
直接从官方示例中复制过来改的。为了演示
templateviewuni-forms refform :modelValueformData :rulesrulestemplateviewuni-forms refform :modelValueformData :rulesrulesuni-forms-item label兴趣爱好 required namehobbyuni-data-checkbox v-modelformData.hobby multiple :localdatahobbys //uni-forms-item/uni-formsbutton classbutton clicksubmit校验表单/button/view
/template
script
export default {data() {return {formData:{},rules: {hobby: {rules: [{validateFunction:function(rule,value,data,callback){if (value.length 2) {callback(请至少勾选两个兴趣爱好)}return true}}]}}}},onReady() {this.$refs.form.setRules(this.rules)// 需要在onReady中设置规则},methods: {submit(form) {this.$refs.form.validate().then(console.log).catch(console.error)}}
}
/script官方说明 说了但好像又没说。。。 官方说了要在 onReady 绑定验证规则
onReady() {this.$refs.form.setRules(this.rules); // 需要在onReady中设置规则},但我的实际代码是从另一个页面复制整个uni-forms 来改的。所以 :rulesrules 就没有去掉。结果这就导致了 validateFunction 只有在第一次调用 this.$refs.form.validate() 有效。 注意 使用 validateFunction 时
在 onReady 绑定验证规则。去掉 uni-forms 上的 :rulesrules。如果有的话
疑惑 onReady 和 :rulesrules 不能正常工作为啥不抛个异常出来 为啥又能触发一次来迷惑人呢。。。唉。。
参考资料
组件名uni-forms