(function($) {
$.fn.extend({
money_mode: function(options) {
var defaults = {
decimal_length: 2,//小数点位数
format: "#,###.00",//格式化类型
locale: "us"
};
var options = $.extend(defaults, options);
var len = parseInt(options['decimal_length']);
return this.each(function() {
var input = $(this);
input.css("ime-mode", "disabled");
var decimal_point = false;
input.bind("keypress", function() {
if (event.keyCode == 46) {
if (input.val().indexOf(".") != -1 || (input.val().lastIndexOf(".") == (input.val().length - 1))) {
return false;
}
} else {
if (decimal_point)
return false;
else
return event.keyCode >= 46 && event.keyCode <= 57;
}
});
input.bind("blur", function() {
// begin失去焦点后字符串格式化
var formatData = formatCodes(options.locale.toLowerCase());
var valid = formatData.valid;
var dec = formatData.dec;
var group = formatData.group;
var neg = formatData.neg;
if (input.val() != null && input.val() != '') {
var text = new String(jQuery(input).text());
if (jQuery(input).is(":input"))
text = new String(jQuery(input).val());
var isValid = true;
for (var i = 0; i < text.length; i++) {
if (valid.indexOf(text.charAt(i)) == -1)
isValid = false;
}
if (isValid) {
var number = new Number(text.replace(group, '').replace(dec, ".").replace(neg, "-"));
var returnString = "";
var decimalValue = number % 1;
if (options.format.indexOf(".") > -1) {
var decimalPortion = dec;
var decimalFormat = options.format.substring(options.format.lastIndexOf(".") + 1);
var decimalString = new String(decimalValue.toFixed(decimalFormat.length));
decimalString = decimalString.substring(decimalString.lastIndexOf(".") + 1);
for (var i = 0; i < decimalFormat.length; i++) {
if (decimalFormat.charAt(i) == '#' && decimalString.charAt(i) != '0') {
decimalPortion += decimalString.charAt(i);
break;
}
else if (decimalFormat.charAt(i) == "0") {
decimalPortion += decimalString.charAt(i);
}
}
returnString += decimalPortion
}
else
number = Math.round(number);
var ones = Math.floor(number);
var onePortion = "";
if (ones == 0) {
onePortion = "0";
}
else {
// find how many digits are in the group
var onesFormat = "";
if (options.format.indexOf(".") == -1)
onesFormat = options.format;
else
onesFormat = options.format.substring(0, options.format.indexOf("."));
var oneText = new String(ones);
var groupLength = 9999;
if (onesFormat.lastIndexOf(",") != -1)
groupLength = onesFormat.length - onesFormat.lastIndexOf(",") - 1;
var groupCount = 0;
for (var i = oneText.length - 1; i > -1; i--) {
onePortion = oneText.charAt(i) + onePortion;
groupCount++;
if (groupCount == groupLength && i != 0) {
onePortion = group + onePortion;
groupCount = 0;
}
}
}
returnString = onePortion + returnString;
if (number < 0)
returnString += neg;
if (jQuery(this).is(":input"))
jQuery(this).val(returnString);
else
jQuery(this).text(returnString);
}
}
// end 失去焦点后字符串格式化
})
input.bind("paste", function() {
var s = clipboardData.getData('text');
if (!//D/.test(s));
value = s.replace(/^0*/, '');
return false;
})
input.bind("dragenter", function() {
return false;
})
input.bind("keyup", function() {
if (input.val() != null && input.val() != '') {
if (input.val().indexOf(".") == -1) {
return true;
}
else {
var decimalIndex = input.val().indexOf('.');
var decimalPart = input.val().substring(decimalIndex + 1, input.val().length);
if (decimalPart.length == len) {
decimal_point = true;
return false;
}
else
return true;
}
}
else {
decimal_point = false;
return false;
} });
});
}
});
function formatCodes(locale) {
// default values
var valid = "1234567890.,-";
var dec = ".";
var group = ",";
var neg = "-";
if (locale == "us" || locale == "cn" || locale == "tw") {
valid = "1234567890.,-";
dec = ".";
group = ",";
}
return new FormatData(valid, dec, group, neg);
};
function FormatData(valid, dec, group, neg) {
this.valid = valid;
this.dec = dec;
this.group = group;
this.neg = neg;
};
})(jQuery);

Jquery 输入金额格式限制 插件的更多相关文章

  1. jquery.inputmask.js 输入框input输入内容格式限制插件

    今天使用的就是这几行代码. 利用 jquery.inputmask.js  下载地址(如果打不开的话 请FQ http://plugins.jquery.com/jquery.inputmask/) ...

  2. jquery.inputmask 输入框input输入内容格式限制插件

    jQuery Input Mask plugin http://robinherbots.github.io/jquery.inputmask README.md jquery.inputmask C ...

  3. jquery限制文本框只能输入金额

    $("#batch_diff_percent").keyup(function () { var reg = $(this).val().match(/\d+\.?\d{0,2}/ ...

  4. jQuery Validate 表单验证插件----通过name属性来关联字段来验证,改变默认的提示信息,将校验规则写到 js 代码中

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.validate.messages_cn.js. ...

  5. jQuery Validate 表单验证插件----利用jquery.metadata.js将校验规则直接写在class属性里面并定义错误信息的提示

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面 ...

  6. jQuery Validate 表单验证插件----在class属性中添加校验规则进行简单的校验

    一.下载插件包. 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.jQuery表单验证插件----添加class属性形式的校验 <!DOCTY ...

  7. jQuery Validate 表单验证插件----Validate简介,官方文档,官方下载地址

     一. jQuery Validate 插件的介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆 ...

  8. jquery表单验证使用插件formValidator

    JQuery表单验证使用插件formValidator 作者: 字体:[增加 减小] 类型:转载 时间:2012-11-10我要评论 jquery表单验证使用插件formValidator,可供有需求 ...

  9. jQuery formValidator表单验证插件

    什么是jQuery formValidator? jQuery formValidator表单验证插件是客户端表单验证插件. 在做B/S开发的时候,我们经常涉及到很多表单验证,例如新用户注册,填写个人 ...

随机推荐

  1. C++ 二维数组(双重指针作为函数参数)

    本文的学习内容参考:http://blog.csdn.net/yunyun1886358/article/details/5659851 http://blog.csdn.net/xudongdong ...

  2. [翻译][MVC 5 + EF 6] 11:实现继承

    原文:Implementing Inheritance with the Entity Framework 6 in an ASP.NET MVC 5 Application 1.选择继承映射到数据库 ...

  3. Java小程序---接口中抽象方法的实现(解决了JAVA语言不能多继承的问题)

    public interface Sing { public static final String eyecolor="black"; public void sleep(); ...

  4. 懒加载 lazy load

    懒加载(Load On Demand)是一种独特而又强大的数据获取方法,它能够在用户滚动页面的时候自动获取更多的数据, 而新得到的数据不会影响原有数据的显示,同时最大程度上减少服务器端的资源耗用. 比 ...

  5. 阿里云服务器centos5.10安装lamp环境

    ==相关命令== 查看linux版本:cat /etc/redhat-release ==配置修改== 一.Apache配置 ------------------------------------- ...

  6. VS2013 调试卡顿

    今早好奇安装了花生壳远程控制软件.然后下午莫名的感觉到vs2013 调试特别的卡顿.会每隔1s中请求一次的那种卡顿于是卸载了花生壳控制软件,发现问题依旧.然后重启机器 ok了.果然不卡顿了. 我回忆了 ...

  7. Apache服务器部署ASP.NET网站

    资源罗列: apache如何支持asp.net 用 Apache 发布 ASP.NET 网站

  8. Unity3d Shader开发(三)Pass(Pass Tags,Name,BindChannels )

    Pass Tags 通过使用tags来告诉渲染引擎在什么时候该如何渲染他们所期望的效果. Syntax 语法 Tags { "TagName1" = "Value1&qu ...

  9. CSS随手记

    html5模板 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...

  10. 关于 IIS 上的 Speech 设置

    在之前的开发过程中,发现在 微软各个版本的Speech中(从sdk5.1 到 最新的 Speech PlatFarme V11),在本地可以生成音频文件,但是在IIS上却生成无法生成完整的文件. 调试 ...