日期:2014-05-18  浏览次数:20367 次

js如何限制TextBox只能输入某范围的整数
函数定义:
function   InputNumb(MaxValue,edit)
{
    if(...)
        return;
    .......
    window.event.returnValue   =   false;
    return;
}

以上需求能否用正则表达式实现?

------解决方案--------------------
算了,还是给个现成的你吧 //很久以前写的.差不多能用. //iDeciLength decimal length function CheckNumberInput(iLength,iDeciLength,iAllowZeroCapital) { event.cancelBubble =true; var sClipBoardText = window.clipboardData.getData( "Text "); if (sClipBoardText==null ) sClipBoardText = " "; if(event.ctrlKey ) { if(event.keyCode == 67 ||event.keyCode ==99||event.keyCode ==10 || event.keyCode ==13) // Ctrl + C { return true; } if(!isNaN(sClipBoardText) && sClipBoardText.length <=iLength) { return true; } return false; } if (iDeciLength> 0 && iLength <3 ) return false; if(event.keyCode == 9 ) return true; var c = String.fromCharCode(event.keyCode); var keyCodeAry = new Array(96,97,98,99,100,101,102,103,104,105) var keyCode = event.keyCode; var specialKeyAry = new Array(13,27,8,46,35,36,37,38,39,40); if (itemInAry(specialKeyAry,keyCode)) return true; var text= event.srcElement.value; if(document.selection.createRange().text==text && event.keyCode !=9) { event.srcElement.value = " "; text = " "; event.srcElement.focus(); } //get text cursor position var obj = window.event.srcElement; var s=document.selection.createRange(); s.setEndPoint( "StartToStart ",obj.createTextRange()) var pos = s.text.length; if((isNaN(c)||keyCode==32 ||event.shiftKey) && !itemInAry(keyCodeAry,keyCode)) { if ( text.indexOf( ". ",0)==-1 &&(iLength> 0) && (keyCode ==110||(keyCode==190 && !event.shiftKey)) ) { if(pos == text.length && (iLength-text.length) <2 && document.selection.createRange().text!=text) { return false; }else{} }else return false; if (iDeciLength==0) return false; } if(text.length==iLength && !(document.selection.createRange().text==text) ) return false; //max length and not hightlight if(pos ==0 && (keyCode==110||(keyCode==190 && !event.shiftKey)) && text.length <iLength-1) { obj.value = "0. "; return false;; } if(pos ==0 && iDeciLength> 0 && text== " " && (c== "0 "||keyCode==96)) { obj.value = "0. "; return false; } if( (c== "0 "||keyCode==96) && iDeciLength <=0 &&pos==0 && iAllowZeroCapital!=1) { return false; } var zeroPos = text.indexOf( ". "); if(zeroPos> 0 && pos > zeroPos) { if (text.length-zeroPos-1 ==iDeciLength) return false; } //alert(pos.length); return true; } function itemInAry(ary,item) { for (var i =0;i <ary.length;i++) { if (ary[i]==item) { return true; } } return false; } //Add End