2015-12-04

近期项目需要,我将插件更新了,增加了两个参数,一个参数控制文本框是否支持输入,另一个参数则是新增了一个回调函数,返回文本框内的值。另外对代码局部重构了,优化了一下封装,需要的朋友请留言给我。

------------------------------------------------------------------------------------------------------

自己的第一个jquery插件,规模虽然不大,但是小成就满满,对jquery又有了更进一步的认识。

简单实用的数字加减插件,实现通过加减按钮对文本框内的数字进行增减操作。

效果图:

参数:

默认值、最大值、最小值、增减度。

可单独对每个input设置参数,也可以对所有input统一设置。参考代码在下方:

使用方法:

1.引用css、js文件(记得引用jquery.min.js)

2.前台:

  2.1无参数

<input type="text" class="numberText" />
<script type="text/javascript">
$(".numberText").spinner();
</script>

  2.2整体参数

<input type="text" class="numberText"/>

<script type="text/javascript">
$(".numberText").spinner({
value: 1,
min: 0,
max: 15,
step: 1
});
</script>

  2.3逐个设置参数

<input type="text" class="numberText" value="11" data-step="1" data-min="0" data-max="10" />
<input type="text" class="numberText" value="11" data-step="1" data-min="0"/>
<input type="text" class="numberText" /> <script type="text/javascript">
$(".numberText").spinner({
value: 5,
min: -2,
max: 15,
step: 2
});
</script>

3.CSS

span.spin-text {
display: inline-block;
overflow: hidden;
border:1px solid silver;
} span.spin-text .spin-val {
border: 1px solid silver;
border-top:none;
border-bottom:none;
vertical-align: middle;
width: 30px;
height:18px;
text-align: center;
} span.spin-text a {
display: inline-block;
width: 20px;
height: 20px;
line-height: 20px;
border: none;
text-align: center;
vertical-align: middle;
text-decoration: none;
background: #fff;
font-family:宋体;
font-weight:bold;
font-size:14px;
} span.spin-text a:hover {
background:#f3f3f3;
}

4.JS

/*
jQuery加减数字插件
作者:metro-liang
时间:2015-10-16
版本:v1.0
*/ /*
参数:value:默认值
min:允许的最小值
max:允许的最大值
step:增减度
*/
; (function ($) {
$.fn.extend({
spinner: function (options) {
return this.each(function () {
var defaults = {
value: 1,
min: 1,
max: 100,
step: 1
};
var _this = $(this); var opts = $.extend(defaults, options); opts.step = _this.data("step") != null ? _this.data("step") : opts.step;
opts.min = _this.data("min")!=null? _this.data("min"):opts.min;
opts.max = _this.data("max") != null ? _this.data("max") : opts.max;
opts.value = _this.val() != "" ? _this.val() : opts.value;
if (opts.value > opts.max || opts.value < opts.min) {
opts.value = opts.max;
}
var container = $('<span></span>').addClass('spin-text');
var textField = _this.addClass('spin-val').val(opts.value).css("ime-mode","Disabled").keypress(function () {
return (/[\d]/.test(String.fromCharCode(event.keyCode)));
}).bind("copy cut paste",function(e){
return false;
});
var decreaseBtn = $('<a href="javascript:void(0)">-</a>').click(function () { changeValue(-1) });
var increaseBtn = $('<a href="javascript:void(0)">+</a>').click(function () { changeValue(1) });
textField.before(decreaseBtn).after(increaseBtn); textField.add(increaseBtn).add(decreaseBtn).wrapAll(container); function changeValue(d) {
var value = parseInt(textField.val());
if (isNaN(value))
{
value = opts.min;
}
var _val = value + d * opts.step; if (_val <= opts.max && _val >= opts.min) {
value = _val;
}
textField.val(value);
}
});
}
}); })(jQuery);

小巧实用的数字加减插件(jquery插件)的更多相关文章

  1. jQuery数字加减插件

    jQuery数字加减插件 我们在网上购物提交订单时,在网页上一般会有一个选择数量的控件,要求买家选择购买商品的件数,开发者会把该控件做成可以通过点击实现加减等微调操作,当然也可以直接输入数字件数.本文 ...

  2. 购物车数字加减按钮HTML+CSS+JS(有需要嫌麻烦的小伙伴拿走不谢)

    之前在写详情页的时候,如下图 因为自己嫌麻烦,就去看其他网站是怎么写的,想直接拿来用,后来看来看去觉得写得很麻烦,于是最后还是决定自己写,附上HTML+CSS+JS代码,一条龙一站式贴心服务2333 ...

  3. MySQL中大数字加减,不产生千位符和科学计数

    mysql数字加减科学计数法 这两天因为需求,需要获取一张表的流水号.规则是这样的.当前日期+8位流水号.比如:2015062400000001,2015062400000002,2015062400 ...

  4. JS生成数字加减乘法验证码

    给大家分享一个简单的js验证码生成代码 PS:该代码依赖Jquery1.4版本以上 传入元素 如productionVerificationCode(#\(("a")) 反回验证码 ...

  5. 纯CSS样式实现数字加减按钮的最佳方案

    前言: 对于数字加减按钮的实现,以前用过不少方案,诸如: 1.使用背景图片——这种效果比较好,缺点是样式控制有点复杂了,还需要使用图片: 2.直接使用“+”“-”——这种方法简单粗暴,最容易实现,缺点 ...

  6. 转 jquery插件--241个jquery插件—jquery插件大全

    241个jquery插件—jquery插件大全 jquery插件jqueryautocompleteajaxjavascriptcoldfusion jQuery由美国人John Resig创建,至今 ...

  7. 8个实用的页面布局和用户界面jQuery插件

    网页设计师和网页开发人员在做项目的时候可能会有一些页面的布局或者对于UI有一些特定的要求.可能一些需求不能单独使用CSS就能实现的.于是很多时候开发人员都会消耗大量的时间和精力去写一些JS来协助实现. ...

  8. 微信小程序——购物车数字加减

    上一篇,我们有讲到如何造一个购物车弹层.今天来说一下,购物车数量的加减如何实现. 主要思路就是在data里面定义一个属性,属性值就是这个数量.点击+的时候就+1,点击-的时候就-1,再结合setDat ...

  9. 集成iscroll 下拉加载更多 jquery插件

    一个插件总是经过了数月的沉淀,不断的改进而成的.最初只是为了做个向下滚动,自动加载的插件.随着需求和功能的改进,才有了今天的这个稍算完整的插件. 一.插件主功能: 1.下拉加载 2.页面滚动到底部自动 ...

随机推荐

  1. 汉诺塔 Hanoi Tower

    电影<猩球崛起>刚开始的时候,年轻的Caesar在玩一种很有意思的游戏,就是汉诺塔...... 汉诺塔源自一个古老的印度传说:在世界的中心贝拿勒斯的圣庙里,一块黄铜板上插着三支宝石针.印度 ...

  2. 关于PHP加速eAccelerator、Xcache、APC和Zend Optimizer

    以前只关注过Zend Optimizer,因为高胖子的书就是这样教的,但是遇到奇葩公司的面试题提问你知道多少个php加速器/缓存,我一下子楞了,因为我所知道的php5.2.x只用过Zend Optim ...

  3. UIApplication-备用

    iPhone应用程序是由主函数main启动,它负责调用UIApplicationMain函数,该函数的形式如下所示: int UIApplicationMain ( int argc, char *a ...

  4. 当DOCKER遇上ESXI

    特别是你要为DOCKER窗口设置静态IP,且和公司局域网打成一片的时候, 苦逼的测试就会开始,我差不多前前后后测试了四五天,一百多个容器报废. NETNS,NSENTER,PIPWORK,各种镜像合下 ...

  5. Altium Designer 导出Gerber文件详细教程

    Altium Designer 导出Gerber文件详细教程   1.用Altium打开需要导出Gerber文件的PCB: 2.点击“File”-“fabricatio Outputs ” “Gerb ...

  6. GS1011无线模块的使用简介。

    一.硬件说明: 只是用电脑的串口助手与之通信,利用了max232进行电平转换.是用模块的UART0作为通信接口. 模块引脚 接点 说明   1.17.32.48 GND 模块地   9 3.3V VB ...

  7. Android新浪微博客户端(一)——主框架搭建

    原文出自:方杰| http://fangjie.info/?p=62 转载请注明出处 提前声明的是,我是按照Ivan的这套教程学下来的. 首先,对于任何应用我们都需要建立一套消息处理机制,就是当用户在 ...

  8. HDU_2051——十进制到二进制转换

    Problem Description Give you a number on base ten,you should output it on base two.(0 < n < 10 ...

  9. ArcGIS加载高德、OSM和谷歌等地图

    1. 引言 网络地图对于我们来说已经不是什么新鲜事了,上面有各大互联网公司收集的海量的地理空间数据.一般网络地图的地图是以切片形式存在的,因此,本文重点讲述如何将这些网络切片地图加载并显示再ArcGI ...

  10. java中的浮点(float)运算

    一.  关于浮点运算,需要说明的几点: 1.  在java中,进行浮点运算并不会处理例外情况,所以,即使除数为0,也不会有例外被抛出; 2.  当运算结果是溢出(Infinity)时,结果为Infin ...