本来是在vue里发现获取不到 input[ type="number"]的值,就是输入两个小数点的数值,比如1.1.1,以为是vue的错误,然而不是,vue只做了数字处理
不明白为什么获取不到值还让输入两个小数点呢,这就尴尬了。
1//vue里对输入的值做的处理function toNumber (val) { 2 var n = parseFloat(val); 3 return isNaN(n) ? val : n; 4}
1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="UTF-8"> 6 <title>Document</title> 7</head> 8 9<body> 10 <div id="app"> 11 当input的type=number时,当输入的数据有两个小数点的时候,比如1.1.1,此时获取不到this.msg的值 12 <input type="number" v-model="msg" @input="check"> 13 </div> 14 <script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.min.js"></script> 15 <script> 16 new Vue({ 17 el: '#app', 18 data: { 19 msg: '', 20 }, 21 methods: { 22 check(val) { 23 console.log(this.msg, 'this.msg'); 24 } 25 } 26 }) 27 </script> 28 29</body> 30 31</html>
所以呢,输入时数字的时候,可以用input[type="text"],直接用正则验证数值.