背景
目前项目中form表单提交中有地方用到了穿梭框,穿梭框是必填项,需要rules 验证是否选择了数据,一般穿梭框是change触发
问题
但是选择change触发,会出现如下问题,也就是用户一选,下面就触发校验规则了,用户体验很差
尝试解决方案
将校验触发改成blur,啊哈解决
但是又碰到新的问题
点击"确定&继续创建"按钮后 触发字段未空的校验规则,
接着穿梭框即使选了东西,提示文字依然在,好的,又造了一个bug
解决方案
添加数据监听方法
watch: { 'createForm.sectorList': function (newVal) { if (newVal.length > 0) { this.$refs.createForm.validateField('sectorList'); } }, 'createForm.dimensionList': function (newVal) { if (newVal.length > 0) { this.$refs.createForm.validateField('dimensionList'); } } },
完美解决:
思考
change,是只要穿梭框发生变化,就触发校验规则,所以出现初始问题
blur 要是没有继续创建功能,确实很好,但是为什么点击“确定&继续创建”按钮后触发一次校验规则后不消失,暂时没发现问题所在