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