因为系统的number框无法设置样式,所以休息无聊时写了一个简单的模拟number框的插件,效果不是很完善,有一些功能可能没注意到

// 简单的模拟number框插件
// 布局:
// <div class="number">
// <input type="text"/>
// <i>-</i><i>+</i>
// </div>
// 使用时进行将上方布局放入要使用number框的位置,然后自行设置CSS样式
// 使用方法:$(".number").number(); ;(function($){
"use strict";
class Number{
constructor(ele) {
this.input=ele.find("input");
this.ai=ele.find("i");
this.div=ele;
this.input();
this.key();
this.calculation();
return {num:this.input.val()};
}
    //输入控制,限制输入的为数值或者小数点
input(){
var that=this;
this.input.on("input",function(){
that.input.val(that.input.val().replace(/[^\d-+\.]/g,'');
})
}
    //按键加减功能的实现
key(){
var that=this;
this.input.on("keydown",function(){
var e=event;
var keyC=e.keyCode;
if(keyC==38){
e.preventDefault();
}
if(keyC==38||keyC==40)
   if(isNaN(that.input.value/1)){
   that.input.val(0);
   }
switch(keyC){
case 38:that.input.val(that.input.val()-0+1); break;
case 40:that.input.val()--;break;
}
});
}
    //加与减按钮的功能实现
calculation(){
this.ai.eq(1).click(()=>{
this.input.focus();
if(isNaN(this.input.val()/1))
this.input.val(1);
this.input.val(this.input.val()-0+1);
})
this.ai.eq(0).click(()=>{
this.input.focus();
if(isNaN(this.input.val()/1))
this.input.val(1);
if(this.input.val()<=1){
this.input.val(1);
})
this.input.val()--;
}
} } // 绑定number方法
$.fn.extend({
number () {
var d=new Number(this);
return parseInt(d.num);
}
});
})(jQuery);

最新文章

  1. C++中的 :: 用法
  2. 《DSP using MATLAB》示例Example5.7
  3. Processing简明教程与Java平台移植方法
  4. PHP函数的实现原理及性能分析
  5. Java Web进阶——Filter过滤器
  6. Java关于链表的增加、删除、获取长度、打印数值的实现
  7. Nginx架构的企业级应用
  8. C# 获取windows特殊路径
  9. 深入浅出之Smarty模板引擎工作机制(二)
  10. MySql奇葩问题汇总
  11. cf B. Dima and To-do List
  12. scp和pscp
  13. hadoop-2.6.0源码编译
  14. SqlServer注意事项总结,高级程序员必背!
  15. leetcode — minimum-path-sum
  16. JAVA8 in Action:行为参数化,匿名类及lambda表达式的初步认知实例整理
  17. Centos7.1环境下搭建BugFree
  18. multiprocessing还是threading?
  19. HDU.2829.Lawrence(DP 斜率优化)
  20. Spring Boot 揭秘与实战 源码分析 - 工作原理剖析

热门文章

  1. Codeforces Round #420 (Div. 2) - C
  2. ResourceBundle读取配置文件
  3. JavaScript判断对象是否相等
  4. JDBC简单总结
  5. autoit3 脚本自动安装实例
  6. ssm框架错误展示-1
  7. php addcslashes()函数 语法
  8. HDU 6090 Rikka with Graph —— 2017 Multi-University Training 5
  9. ThinkPHP整合datatables实现服务端分页
  10. Oracle数据库之触发器(二)