RT。
今天测试那边提了一个这样的需求,我在网上找了一大堆。但是确发现基本上都是不可用的,发现一个可用的呢,但是确有一个小bug,就是有时候 小数点和删除键 需要点击两次。这个JS的代码如下
<input onkeypress="return t();" onpaste="return false"/>
function t(){
//获取事件 注意:在mozilla下 出发事件的函数不能带参数
var evt = getEvent();
var rest = false;
if(evt){
rest = true;
//获取事件源的对象
var element = evt.srcElement || evt.target;
//获取事件源的对象(这里的事件源对象是 文本框)
evt = evt.keyCode || evt.charCode;
//获取 文本框的值
var text = element.value;
if(evt!=8 && evt!=13){
//按下是否是 “.” 并只允许按下一个
if(evt == 46){
if(text || text != ''){
if(!(/^\d+$/g.test(text)))
rest = false;
}else{
rest =false;
}
//按下是否是数字键 退格键 回车键
}else if(evt < 48 || evt > 57){
rest = false;
}
}
}
return rest;
}
/**
* @ 获取事件(鼠标、键盘)在火狐下触发函数不能带参数
* @ 兼容 IE Mozilla Google Maxthon Opera
* @ return key/null
*/
function getEvent(){
if(document.all){
return window.event;//IE
}else{//FF
func = getEvent.caller;
while(func != null){
var arg0 = func.arguments[0];
if(arg0)
return arg0;
func = func.caller;
}
return null;
}
}
今天测试那边提了一个这样的需求,我在网上找了一大堆。但是确发现基本上都是不可用的,发现一个可用的呢,但是确有一个小bug,就是有时候 小数点和删除键 需要点击两次。这个JS的代码如下
<input onkeypress="return t();" onpaste="return false"/>
function t(){
//获取事件 注意:在mozilla下 出发事件的函数不能带参数
var evt = getEvent();
var rest = false;
if(evt){
rest = true;
//获取事件源的对象
var element = evt.srcElement || evt.target;
//获取事件源的对象(这里的事件源对象是 文本框)
evt = evt.keyCode || evt.charCode;
//获取 文本框的值
var text = element.value;
if(evt!=8 && evt!=13){
//按下是否是 “.” 并只允许按下一个
if(evt == 46){
if(text || text != ''){
if(!(/^\d+$/g.test(text)))
rest = false;
}else{
rest =false;
}
//按下是否是数字键 退格键 回车键
}else if(evt < 48 || evt > 57){
rest = false;
}
}
}
return rest;
}
/**
* @ 获取事件(鼠标、键盘)在火狐下触发函数不能带参数
* @ 兼容 IE Mozilla Google Maxthon Opera
* @ return key/null
*/
function getEvent(){
if(document.all){
return window.event;//IE
}else{//FF
func = getEvent.caller;
while(func != null){
var arg0 = func.arguments[0];
if(arg0)
return arg0;
func = func.caller;
}
return null;
}
}
解决方案 »
- Ext.panel 显示图片问题
- 关于jquery中的$(this) 和 js中的 this 讨论
- 做弹出div随着滚动条移动而移动的问题,求大神解答!
- 用eval方法将字符串评估成json对象,我解决不了,高手帮忙啊
- 模态窗口问题,高手请进
- getElementById的一点小问题
- 客戶端通過js添加數據,服務端讀取不到~`急死了~~~
- 如何实现把一个列表框中的选项倒到另外一个列表框中?JavaScript 实现
- 有点难度的判断两点的坐标值
- select控件的隐藏属性??
- mousemove的问题?
- var tj={"01":["1","2","3"], "02":["4","5","6"]}
验证失败 则 renturnValue false
function t(){
var event = t.caller && t.caller.arguments[0] || window.event;
var code = event.keyCode;
var input = document.getElementById("input");
switch( code ){
case 8 : return;
case 109 :
case 189 : return input.value.length==0;
case 110 :
case 190 : return input.value.indexOf(".") == -1;
default : return !(code<48 || code>57 && code<96 || code>105)
}
}
</script>
<input onkeydown="return t();" onpaste="return false" id="input"/>