原生js的event对象有三个键盘事件的值:
1) charCode: 被点击键的Unicode值
2) keyCode: 被点击键的ASCII十进制值
3) which: 字母数字键的charCode或者keyCode,具体能够本身试试 this
Mootools的event被封装后,统一成为code和key:code
event.code = event.which || event.keyCode; event.key = String.fromCharCode(code).toLowerCase();
写了个方法,用于控制数字输入对象
// 价格字符串格式(小数点后最多两位) $$('.jsForPrice').addEvents({ 'keypress': function(ev){ var result; if(this.val().length === 0 || this.val().test('\\.')){// 只能有1个点号 result = ev.code>=48&&ev.code<=57 || ev.code==8; }else{ result = ev.code>=48&&ev.code<=57||ev.code==8||ev.code==46; } return result; }, 'keyup': function(ev){ if(this.val().test('\\.')){ if(this.val().split('.')[1].length>2){ this.val(this.val().substring(0, this.val().length-1)) } } //console.log(this.val().test('^[0-9]+(\\.[0-9]{1,2}){0,1}$')) } });
参考:stackoverflow事件