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. 【转】Nginx配置文件详细说明

    Nginx配置文件详细说明 在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户user www-data;    #启动进程,通常设置成和cpu的数量相等 ...

  2. APKTool用法

    APKTool是GOOGLE提供的APK编译工具,需要JAVA运行环境,推荐使用JDK1.6或者JDK1.7. 如果你想对APK文件进行修改,那么就不可避免的要使用到APKTool.论坛里有很多关于R ...

  3. C C++ Java中的static

    [原文出处]: http://hi.baidu.com/aezealer/blog/item/fb8fdd438113c8169213c6c5.h tml 术语“static”有段不寻常的历史.起初, ...

  4. ossim/zabbix/logstash

    http://dl528888.blog.51cto.com/2382721/1639579 http://307033.blog.51cto.com/297033/473666 http://lym ...

  5. Qt之QTableView显示富文本(使用了QAbstractTextDocumentLayout和QTextDocument)

    http://blog.csdn.net/liang19890820/article/details/50973099

  6. HDU-5532(LIS-nlogn)

    思路: 解法一: 新的认识get+1,对于一个数组,可以通过记录他'<'和'>'来判断数组的升降序状态,这种方法只需要n的复杂度就可以解决问题,需要注意的一点是,每次删除一个结点在消失两个 ...

  7. bootstrap完整导航栏

    效果图: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  8. python游戏编程——跟13岁儿童学编程

    python爬虫基本告一段落,琢磨搞点其他的,正好在网上看到一个帖子,一个外国13岁小朋友用python写的下棋程序,内容详细,也有意思,拿来练手. 13岁啊.. 我这年纪还在敲 dir啥的吧 想到原 ...

  9. javascript中的变量作用域

    在网上看了一道js面试题 <script type="text/javascript"> var tt = 'aa'; function test() { alert( ...

  10. nexus5 root教程

    转载自: http://www.inexus.co/article-1280-1.html http://www.pc6.com/edu/71016.html https://download.cha ...