1.input框只能输入纯数字校验
看最新的官方文档我们发现,form表单校验给我们提供了校验的方法
此方法可行,而且只能输入纯数字,当输入除数字以外的其他字符时,会阻止我们继续输入。但是如果我们在项目中引入的element-ui的版本较低时,当你先输入数字,紧接着输入其他的字符,校验就会失效,当项目趋于稳定时,此时升级element-ui版本风险极大,建议我们在此基础上考虑解决地办法。
我们可以用js原生的方法,限制type="number",加上onkeyup="value=value.replace(/[^\d.]/g,'')",防止可以继续输入字母e,然后改一下样式就可以了
<el-input v-model.number="num" type="number" class="input"></el-input>
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
}
我查阅网上还有其他监听键盘事件,不如此方法简单粗暴!
2.ie浏览器下时间插件的回显问题
这是在谷歌浏览器下的显示,由于之前保存过该事件信息,所以可以看到上次保存的信息,但是当我们用ie浏览器查看此页面时,发现之前保存的时间信息并没有显示出来,是因为我们在时间插件里加入了**placeholder**此属性,当删除此属性时可以看到对应的回显信息,我们也可以通过初始值,结合**v-if**判断处理此兼容问题。
3.safari浏览器下时间转化问题兼容
我们经常用yyyy-MM-dd HH:mm:ss格式表示日期,如2018-11-11 00:00:00,在js开发中也经常会把此格式字符串格式化为javascript Date类型,如new Date('2018-11-11 00:00:00'),不幸的是此操作在Safari浏览器(不论是Mac还是iPhone)上会报错,返回Invalid Date。如下图所示:
所以在new Date('yyyy-MM-dd HH:mm:ss')格式化前需要先把字符串转化为Safari支持的格式,可以是yyyy/MM/dd HH:mm:ss或yyyy-MM-ddTHH:mm:ss或其他