表单验证-数值型相关注意事项
- input默认输入值为字符串,rules中
type: 'number'
的验证无效,即便设置input的type为number也没法验证经过(保留疑问)
- 设置input的type为number并不能保证输入值为数字,由于这个类型接受e为数值
‘12’ > 11 || '12' > '11'
都是成立的,受益于强制转换,方便输入值和限制值之间的比较
DatePicker日期选择器
- 表单中同时存在必填项和message,会致使日期选择器选择后再次点击选中相同日期时出现必填项提醒(解决方法,使用validator代替message)
From表单
- 表单的验证函数有2中传入方式。一、在rules内联,这种方式因为Validator调用对象不是vue实例,因此没法访问其下绑定的data等。二、把Validator方法写在methods中,这样能够正常访问到vue实例绑定的全部值。例如
rules:{
remark:[
{
validator: this.remarkValidator,
trigger: 'blur'
}
]
},
methods:{
remarkValidator(rule, value, callback) {
this.remark
}
}
Transfer穿梭框
- 在IE9下,穿梭框的滚动列表滚动时没法触发实时渲染。能够修改穿梭框组件,给滚动列表的checkbox-grounp组件监听原生scroll事件,当滚动时改变列表内项的样式,强制浏览器从新渲染。
mounted() {
function scroll(e) {
let items = e.currentTarget.children
for (let i = 0; i < items.length; i++) {
let random = Math.random()
items[i].style.height = `${30 + random}px`
}
}
if (navigator.userAgent.indexOf('MSIE 9') !== -1) {
this.$refs.scroll.$el.onscroll = scroll
}
}