1. 程式人生 > >JavaScript開發類工具方法收集(一)

JavaScript開發類工具方法收集(一)

   相信大家做專案的時候,都會收集一些有用的小的javasciprt方法,或者開發一些應用於自己業務邏輯的JavaScript方法,但並不是每個專案中都會用到,往往上是專案數量一多,有些可重複使用的方法,在我們忙碌的工作中,卻經常被不經意的忘記在自己的coding中; 其實專案中,比較深刻的感觸到,每個專案中,我們都會有重複開發的一部分程式碼,這並不是因為我們的原因,而是因為專案組與專案組之間的交流太少,都是處於各自封閉的狀態,有一種閉門造車的狀態!因此,有了收集自己在專案中所用到一些JavaScript方法.

1. 限制只能輸入小數,並且只能輸入兩位小數

  legionInput Function:

//用於輸入兩位小數,並可以在小數點前增加數字功能
//author: dsy 
//date: 20080516
function legionInput(obj, reg, inputStr){
     //獲取一個選擇物件範圍
   var docSel = document.selection.createRange();
     oSel = docSel.duplicate(); //建立選擇範圍複本
   oSel.text = "";
     var srcRange = obj.createTextRange(); //建立文字範圍
   oSel.setEndPoint("StartToStart", srcRange); //設定結束端
   var str = oSel.text + inputStr + srcRange.text.substr 
                   (oSel.text.length);
     return reg.test(str);
}

  CheckNumber Function:

/**
 * 檢測主入口
 * @author dsy
 * @param {Object} objId
 * @Date 20090523
 */
function CheckNumber(objId){
     var obj = document.getElementById(objId);
     obj.onkeypress = function(){
          if ((event.keyCode < 48 || event.keyCode > 57) 
               && event.keyCode != 46) {
               event.returnValue = false;
          }
           else {
               return legionInput(this, /^\d*\.?\d{0,2}$/, 
                          String.fromCharCode(event.keyCode));
          }
     }
}

以上函式的使用方法,相當簡單:

廢話少說,上demo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>限制只能輸入數字,並限制小數位</title>
        <script type="text/javascript">
            //用於輸入兩位小數,並可以在小數點前增加數字功能
            //author: dsy 
            //date: 20080516
            function legionInput(obj, reg, inputStr){
                //獲取一個選擇物件範圍
                var docSel = document.selection.createRange();
                oSel = docSel.duplicate(); //建立選擇範圍複本
                oSel.text = "";
                var srcRange = obj.createTextRange(); //建立文字範圍
                oSel.setEndPoint("StartToStart", srcRange); //設定結束端
                var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length);
                return reg.test(str);
            }
            
			/**
			 * 檢測主入口
			 * @author dsy
			 * @param {Object} objId
			 * @Date 20090523
			 */
            function CheckNumber(objId){
                var obj = document.getElementById(objId);
                obj.onkeypress = function(){
                    if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 46) {
                        event.returnValue = false;
                    }
                    else {
                        return legionInput(this, /^\d*\.?\d{0,2}$/, String.fromCharCode(event.keyCode));
                    }
                }
            }
			
			window.onload = function() {
				CheckNumber("txt4")
			}
        </script>
    </head>
    <body>
        <input id="txt4" name="txt4" type="text" style="height: 24px;" size="15" />
    </body>
</html>

按上例所示:

只需在CheckNumber()函式,傳入相應即可完成對輸入是否是數字的限制