84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
先谢谢各位了,我是写了一个type = number的Input,鉴于业务需求,这个Input中只能输入数字,加减号不可输入。本来想判断input中的value值来手动删掉里面的加号减号及多余的点,可是又发现一旦输入的值不合法,Input的value已经被转化为空字符串 ‘’。这样我就无法取到input中的值了。想了许久不知道解决方法,求各位大神帮忙了,谢谢~对了,我是用vue写的页面~~~
用正则匹配 '^[-]?[0-9]*.?[0-9]+(eE?[0-9]+)?$'
<input type="text" />
可以用这种方式,监听input值的变化,发现验证不过就提示。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Welcome</title> </head> <body> <form> <input id="inputNumber" type="text" name="test" onblur="checkNumber()"> </form> <script type="text/javascript"> function checkNumber(){ var inputNumber = document.getElementById('inputNumber').value; if(!/^[-]?[0-9]*\.?[0-9]+(eE?[0-9]+)?$/.test(inputNumber)){ alert('Please input a valid number!'); return false; } } </script> </body> </html>
把你的js贴出来看看
onkeyup="this.value=this.value.replace(/D/g,'')" onafterpaste="this.value=this.value.replace(/D/g,'')"
type=number应该是无法直接限制用户不能输入正负号、e、多个小数点的。还是需要通过input的value来判断。至于输入的值不合法,input的value被转化成空字符串的问题,可以将input的type改成text,然后使用正则和replace去除非数字和多个小数点就行了。
那你可以用 v-model绑定一个值,然后通过watch 来监听这个值,但你找到有非法的值得时候,删掉非法的字符串即可
用正则匹配 '^[-]?[0-9]*.?[0-9]+(eE?[0-9]+)?$'
可以用这种方式,监听input值的变化,发现验证不过就提示。
把你的js贴出来看看
onkeyup="this.value=this.value.replace(/D/g,'')" onafterpaste="this.value=this.value.replace(/D/g,'')"
type=number应该是无法直接限制用户不能输入正负号、e、多个小数点的。
还是需要通过input的value来判断。
至于输入的值不合法,input的value被转化成空字符串的问题,
可以将input的type改成text,然后使用正则和replace去除非数字和多个小数点就行了。
那你可以用 v-model绑定一个值,然后通过watch 来监听这个值,但你找到有非法的值得时候,删掉非法的字符串即可