<input id="ccc" type="text"/>
$("#ccc").keypress(onlyNum);
function onlyNum(e)
{
var pos = getCursortPosition(e);
var keyNum;
if(window.event){//IE
keyNum = window.event.keyCode;
}else if(e.which){
keyNum = e.which;
}
var realKey = String.fromCharCode(keyNum);
if(keyNum != 8){
var myReg = /^(-|\+)?\d+((\.\d+)|(\.))?((\/[0-9]+(\.)?\d*)|(\/))?$/;
var srcVal = $(this).val().substr(0,pos)+""+realKey+$(this).val().substr(pos,$(this).val().length);
if (!myReg.test(srcVal))
{
cancelBubble();
return false;
}
}
}
//得到事件
function getEvent(){
if(window.event) {return window.event;}
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0){
if((arg0.constructor==Event || arg0.constructor ==MouseEvent
|| arg0.constructor==KeyboardEvent)
||(typeof(arg0)=="object" && arg0.preventDefault
&& arg0.stopPropagation)){
return arg0;
}
}
func=func.caller;
}
return null;
}
//阻止冒泡
function cancelBubble()
{
var e=getEvent();
if(window.event){
//e.returnValue=false;//阻止自身行为
e.cancelBubble=true;//阻止冒泡
}else if(e.preventDefault){
e.preventDefault();//阻止自身行为
e.stopPropagation();//阻止冒泡
}
}
function getCursortPosition (ctrl) {//获取光标位置函数
var startPos = ctrl.target.selectionStart;
var endPos = $(ctrl.target).selectionEnd;
var CaretPos = 0; // IE Support
if (document.selection) {
ctrl.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.target.selectionStart || ctrl.target.selectionStart == '0')
CaretPos = ctrl.target.selectionStart;
return (CaretPos);
}