JS金融文本框

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>金融軟件文本框禁用非法字符特效-2011-04-26</title>
    <style type="text/css">
        .ime
        {
            ime-mode: disabled; /**只對IE有效,禁用輸入法切換**/
            width:300px;
        }
    </style>
    <script language="javascript" type="text/javascript">

        function isValiNum(k) {
            return (k == 9 || k == 13 || k == 46 || k == 8 || k == 189 || k == 190 || k == 110 || (k >= 48 && k <= 57) || (k >= 96 && k <= 105) || (k >= 37 && k <= 40));
        }

        function numKeyDown() {
		var k = window.event.keyCode;
			if(k==86) {
				return numPaste();
			}            
            //判斷輸入字符是否合法;調用isValiNum函數;
            return isValiNum(k);
        }

        function numPaste() {
            //從剪切板中獲取數據;
            var text = window.clipboardData.getData("Text");
            for (var i = 0; i < text.length; i++) {
                var asc = text.charCodeAt(i);   //轉成ASCII值;
                if (!isValiNum(asc)) {
					alert("您的粘貼內容有非法字符");
                    return false;
                }
            }
        }

        //自動給輸入的數據加逗號;
        function commafy(n) {
            var re = /\d{1,3}(?=(\d{3})+$)/g;
            var n1 = n.replace(/^(\d+)((\.\d+)?)$/, function (s, s1, s2) { return s1.replace(re, "{1},") + s2; });
            return n1;
        }
    </script>
</head>
<body>
    <input id="txtCode" type="text" class="ime" οnpaste="return numPaste()" οnkeydοwn="return numKeyDown()" οnfοcus="this.style.textAlign='right'; this.value=this.value.replace(/,/g,'');" οnblur="this.style.textAlign='right';this.value=commafy(this.value)" />
</body>
</html>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章