關於 number類型的input 輸入框踩坑記,input[type='number']輸入框限制輸入,只允許輸入負數、0、正數,小數點保留2位小數

關於 number類型的input 輸入框踩坑記,js和jq獲取number類型的文本值,獲取不到-號,導致校驗異常,完美解決辦法,轉換input類型。

<input type="number" class="fushu"/>
$(function(){
	 $(".fushu").focus(function () {
                $(this)[0].type = "text";  
    })
      $(".fushu").blur(function () {
                $(this)[0].type = "number";  
      })
      $('.fushu').bind('input propertychange', function () {
      	checkfushuInt($(this)[0]);
      })
})
//負數
            window.checkfushuInt = function (obj) {
                obj.value = obj.value.replace(/[^-\d.]/g, ""); //清除"-","數字"和"."以外的字符
                obj.value = obj.value.replace(/^[.]/, ""); //禁止第一個字符爲.
                obj.value = obj.value.replace("-.", ""); //禁止前兩個字符爲-.
                obj.value = obj.value.replace(/\-{2,}/g, "-"); //只保留第一個-, 清除多餘的
                obj.value = obj.value.replace("-", "$##$##$").replace(/\-/g, "").replace("$##$##$", "-");
                obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一個., 清除多餘的
                obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
                obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能輸入兩個小數
            }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章