javascript - 請(qǐng)問如何不讓type=number的Input,不可輸入加號(hào)減號(hào)和多個(gè)小數(shù)點(diǎn)?
問題描述
先謝謝各位了,我是寫了一個(gè)type = number的Input,鑒于業(yè)務(wù)需求,這個(gè)Input中只能輸入數(shù)字,加減號(hào)不可輸入。本來想判斷input中的value值來手動(dòng)刪掉里面的加號(hào)減號(hào)及多余的點(diǎn),可是又發(fā)現(xiàn)一旦輸入的值不合法,Input的value已經(jīng)被轉(zhuǎn)化為空字符串 ‘’。這樣我就無法取到input中的值了。想了許久不知道解決方法,求各位大神幫忙了,謝謝~對(duì)了,我是用vue寫的頁面~~~
問題解答
回答1:用正則匹配 ’^[-]?[0-9]*.?[0-9]+(eE?[0-9]+)?$’
<input type='text' />
可以用這種方式,監(jiān)聽input值的變化,發(fā)現(xiàn)驗(yàn)證不過就提示。
<!DOCTYPE html><html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Welcome</title></head><body><form> <input 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>回答2:
把你的js貼出來看看
回答3:onkeyup='this.value=this.value.replace(/D/g,’’)' onafterpaste='this.value=this.value.replace(/D/g,’’)'
回答4:type=number應(yīng)該是無法直接限制用戶不能輸入正負(fù)號(hào)、e、多個(gè)小數(shù)點(diǎn)的。還是需要通過input的value來判斷。至于輸入的值不合法,input的value被轉(zhuǎn)化成空字符串的問題,可以將input的type改成text,然后使用正則和replace去除非數(shù)字和多個(gè)小數(shù)點(diǎn)就行了。
回答5:那你可以用 v-model綁定一個(gè)值,然后通過watch 來監(jiān)聽這個(gè)值,但你找到有非法的值得時(shí)候,刪掉非法的字符串即可
回答6:<input type='tel' />
