欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js 金額文本框?qū)崿F(xiàn)代碼

 更新時間:2012年02月14日 18:48:20   作者:  
js 金額文本框?qū)崿F(xiàn)代碼,需要處理金額輸入的朋友可以參考下
案例1:回車實現(xiàn)Tab跳轉(zhuǎn)。
響應文本框的onKeyDown事件,window.event.keyCode獲得用戶點擊的keyCode。
(*)keyCode和ASCII不是完全一致,主鍵盤的1和小鍵盤的1的ASCII一樣,但是keyCode不一樣?;剀嚨膋eyCode為 13,Tab的keyCode為9。
<body onkeydown="if(window.event.keyCode==13){window.event.keyCode=9;}">
只有少數(shù)的鍵才能被替換,大部分是不行的,有權限問題。
鍵盤碼與ASCII碼不一樣。
keyCode
8:退格鍵
46:delete
37-40: 方向鍵
48-57:小鍵盤區(qū)的數(shù)字
96-105:主鍵盤區(qū)的數(shù)字
110、190:小鍵盤區(qū)和主鍵盤區(qū)的小數(shù)點
189、109:小鍵盤區(qū)和主鍵盤區(qū)的負號
13:回車
9: Tab 就是那個把焦點移到下一個文本框的東東。
案例2:金額文本框
財務相關系統(tǒng)中涉及到金額的文本框有如下要求:
進入金額文本文本框不使用中文輸入法
不能輸入非數(shù)字
焦點在文本框中時文本框左對齊;焦點離開文本框時文本框右對齊,顯示千分位
禁用輸入法:style=“ime-mode:disabled” //兼容FF、IE,不兼容Chrome
禁 止鍵入非法值,只有這些才能被鍵入(k == 9) || (k == 13) || (k==46)||(k==8)||(k==189)||(k==109)||(k==190)||(k==110)|| (k>=48 && k<=57)||(k>=96 && k<=105)||(k>=37 && k<=40)。 onkeydown="return numonKeyDown()" 不要寫成onkeydown="numonKeyDown()" 區(qū)分事件響應函數(shù)和事件響應函數(shù)調(diào)用的函數(shù)。
禁止粘貼(偉大的 Tester),<input onpaste=“return false;” ,太暴力,應該只是禁止粘貼非法值。在onpaste中通過clipboardData.getData(‘Text')取到粘貼板中的值,然后遍歷每個 字符,看是否是合法的值,如果全部是合法值才允許粘貼,只要有一個非法值就禁止粘貼。charAt、charCodeAt(查字符集.doc)
焦點在的時候左對齊沒有千分位,焦點不在時右對齊千分位。this.style.textAlign='right'
添加千分位的方法,見備注(*)
========補充知識==================
(?=exp)匹配exp前面的位置
(?=exp) 也叫零寬度正預測先行斷言,它斷言自身出現(xiàn)的位置的后面能匹配表達式exp。比如\b\w+(?=ing\b),匹配以ing結尾的單詞的前面部分(除了 ing以外的部分),如查找I'm singing while you're dancing.時,它會匹配sing和danc。
===============================
復制代碼 代碼如下:

function f(){
var txts=document.getElementsByTagName('input');
for(var i=0;i<txts.length;i++){
//回車轉(zhuǎn)換為tab
txts[i].onkeydown=function(){
if(window.event.keyCode==13){
window.event.keyCode=9;
}
}
txts[i].onpaste=function(){
var usrInput=clipboardData.getData('Text');
var k;
for(var i=0;i<usrInput.length;i++){
k=usrInput.charCodeAt(i);
//只能黏貼.或0-9的數(shù)字,參考ASCII字符集。
if((k==46) ||(k>=48 && k<=56)){
}else{
return false;
}
}
}
}
}

千分位(練習代碼):
復制代碼 代碼如下:

function commafy(n)
{
var re=/\d{1,3}(?=(\d{3})+$)/g; //必須是以\d{3}結尾,前面必須是1-3個數(shù)字,但替換的時候,不包含結尾的\d{3}個數(shù)字。 var n1=n.replace(/^(\d+)((\.\d+)?)$/,function(s,s1,s2){return s1.replace(re,“$&,”)+s2;});
  return n1;
}
function addQianFenWei(txtBox)
{
txtBox.value=commafy(txtBox.value);
}
function removeQianFenWei(txtBox)
{
txtBox.value=txtBox.value.replace(/,/g,"");//如果是replace(',','')是只替換第一個
}

復制代碼 代碼如下:

<script type="text/javascript">
function commafy(n)
{
var re=/\d{1,3}(?=(\d{3})+$)/g; //匹配1到3個數(shù)字后面跟3個數(shù)字,但不含最后的3個數(shù)字。
var n1=n.replace(/^(\d+)((\.\d+)?)$/,function(s,s1,s2){return s1.replace(re,"$&,")+s2;});
return n1;
}
function setQFW(){
var objTxt=document.getElementById('txtqfw');
var r='';
for(var i=objTxt.value.length-1;i>=0;i--){
if(i%3==0){
r+=objTxt.value.charAt(i)+',';
}else{
r+=objTxt.value.charAt(i);
}
}
 objTxt.value=r;
//objTxt.value=commafy(objTxt.value);
}
</script>

相關文章

最新評論