鍍金池/ 問答/HTML/ jquery怎么實(shí)現(xiàn)input框輸入合法的正整數(shù)

jquery怎么實(shí)現(xiàn)input框輸入合法的正整數(shù)

當(dāng)用戶每輸入的時(shí)候,判斷是不是符合要求。不符合則不顯示在輸入框。
是用jquery keypress事件嗎?求具體實(shí)現(xiàn)

回答
編輯回答
耍太極

keyup事件,keyup時(shí)判斷是否符合正則,不符合replace掉

2018年2月27日 02:31
編輯回答
不將就

無需jquery,直接在html標(biāo)簽上做即可

<input type="text" name="points" oninput="javascript:this.value=this.value.replace(/[^\d]/g,'')" />
2018年7月28日 16:11
編輯回答
初心

監(jiān)聽oninput事件

    <input type="text"  oninput="aaa(this)"/>
        <script>
            function aaa(obj){                    
                    var num = obj.value;
                    var re=/^\d*$/;                  
                    if(!re.test(num)){                        
                        isNaN(parseInt(num))?obj.value='':obj.value=parseInt(num);        
                    }                                                
                     console.log( obj.value);
            }
        </script>
2018年3月10日 20:52
編輯回答
祉小皓

這個(gè)要看你是什么時(shí)候做出這個(gè)判斷了。
假設(shè)給這個(gè)input框添加一個(gè)class名稱為number(如果需要唯一選取,最好用ID);

  • 情況1:在輸入的時(shí)候

var input = $('.number');
input.keyup(function(){
    if(this.val() && this.val() < 0 && this.val()%1 == 0){
      // do something
      // 這里可以自己寫一個(gè)正則,然后直接將這個(gè)value做出替換
    }
})
  • 情況2:在點(diǎn)擊提交submit的時(shí)候

var btn = $('#submit');
btn.click(function(){
   var value = $('.number').val();
     if(this.val() && this.val() < 0 && this.val()%1 == 0){
      // do something
      // 這里可以自己寫一個(gè)正則,然后直接將這個(gè)value做出替換
    }
})
2018年3月17日 18:24
編輯回答
心夠野
<input type="number" step="1" min="1" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}">

可以這樣正則匹配,省略了寫JS的麻煩,直接在按鍵事件中正則匹配非正整數(shù)的部分替換為空字符串,這樣剩下的只會(huì)是正整數(shù)。

2018年5月27日 16:05