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. linux 命令行更新sdk

    ./android list sdk --proxy-host android-mirror.bugly.qq.com --proxy-port 8080 --no-ui -a -s ./androi ...

  2. Windows下python安装matplotlib

    此文为转载,原文地址为:http://blog.csdn.net/u010585135/article/details/42127273 一.下载matplotlib安装包:网址http://matp ...

  3. 1像素HR技巧(兼容各浏览器)

    hr{color:#ccc;height:1px;border:0px;border-top:1px solid #ccc;margin:0px;padding:0px;overflow:hidden ...

  4. 浅谈 “空指针、野指针、void*”

            Author: JW. Zhou Date: 2014/7/2 一.空指针(0/NULL) 返回NULL和返回0是完全等价的,因为NULL和0都表示空指针,换句话说:空指针是什么,就是 ...

  5. Altium Designer规划电路板

           所谓规划电路板就是根据电路的规模以及用户的需求,确定所要制作电路板的物理外形尺寸和电气边界.电路板规划的原则是在满足用户要求的前提下,使板面美观而且利于后面的布线工作. 1. 定义板的外 ...

  6. 【2012天津区域赛】部分题解 hdu4431—4441

    1001: 题意:给你13张麻将牌,问可以胡哪些张 思路: 枚举可能接到的牌,然后dfs判断能否胡 1002: 题意: 已知n,m 求 n的所有约数在m进制下的平方和 做法:队长用java高精度写的 ...

  7. libvirtVirsh

    virsh基于不同协议远程连接libvirt drivers(Hypervisors) 基于OS系统账号ssh登陆

  8. VC用OLE方式读写Excel

    前几天要做一个项目,需要读取Excel中的数据.从网上查资料发现,主要是有两种方式.一是把Excel表当成数据库使用ODBC读写,这样操作起来就跟操作Access数据库似的.但这种方式效率比较低.另一 ...

  9. IE6下的怪异解析知识点补充

    转载请注明出处:HTMl5自由者      

  10. USB挂起与唤醒.

    USB可见设备状态分为连接(Attached),上电(Powered),默认(Default),地址(Address),配置(Configured)和挂起(Suspended)6个状态.所谓可见,即U ...