jquery -- jquery控制只能输入数字和小数点

控制文本框只能输入数字是一个很常见的需求,比如电话号码的输入、数量的输入等,这时候就需要我们控制文本框只能输入数字。在用js控制之后在英文输入法的状态下去敲击键盘上的非数字键是输不进去的,然而当你转到中文输入法的时候输入的是中文,再按空格或回车键,中文或英文字母就输进去了,这时候就需要我们在文本框得到焦点的时候把输入法关闭,就是不响应输入法的切换。如下语句可以实现这样的功能。

 

通过keyCode来处理

下面的语句是用jquery写的,控制class为checkNum的文本框只能输入数字和小数点。

   //监听键盘,只允许输入数字和小数点 
$(".checkNum").keypress(function(event) { var keyCode = event.which; if (keyCode == 46 || (keyCode >= 48 && keyCode <=57)) return true; else return false; }).focus(function() { this.style.imeMode='disabled'; });

imeMode有四种形式,分别是:

active 代表输入法为中文
inactive 代表输入法为英文
auto 代表打开输入法 (默认)
disable 代表关闭输入法

 

通过正则表达式来处理

          /*JQuery 限制文本框只能输入数字*/  
            $(".NumText").keyup(function(){    
                    $(this).val($(this).val().replace(/D|^0/g,''));  
                }).bind("paste",function(){  //CTR+V事件处理    
                    $(this).val($(this).val().replace(/D|^0/g,''));     
                }).css("ime-mode", "disabled"); //CSS设置输入法不可用    
 
            /*JQuery 限制文本框只能输入数字和小数点*/
            $(".NumDecText").keyup(function(){    
                    $(this).val($(this).val().replace(/[^0-9.]/g,''));    
                }).bind("paste",function(){  
                    $(this).val($(this).val().replace(/[^0-9.]/g,'')); //粘贴的不是数字,则替换为''    
            //或 return false; 禁用粘贴功能 }).css(
"ime-mode", "disabled"); //CSS设置输入法不可用

 

posted @ 2015-05-27 10:16  goodup  阅读(5356)  评论(0编辑  收藏  举报

如有不对之处,欢迎指出,一起成长