`

jquery中实现只输入数字及货币分三位划分的效果

阅读更多

http://scottonwriting.net/sowblog/archive/2011/06/25/creating-a-currency-masked-textbox-with-on-the-fly-currency-formatting.aspx
  中,描述了使用jquery及插件,打早一个输入框,这个输入框中,只允许输入数字,可以使用
前后移动的光标,并且输入数字后,可以在数字前自动加上$符号,并且使用会计上的自动划分方法,对货币进行每三位的划分,下面讲解下过程:

1)编写js,判断只允许哪些输入,比如如下代码:
 
// JavaScript I wrote to limit what types of input are allowed to be keyed into a textbox 
var allowedSpecialCharKeyCodes = [46,8,37,39,35,36,9];
var numberKeyCodes = [44, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105];
var commaKeyCode = [188];
var decimalKeyCode = [190,110];

function numbersOnly(event) {
    var legalKeyCode =
        (!event.shiftKey && !event.ctrlKey && !event.altKey)
            &&
        (jQuery.inArray(event.keyCode, allowedSpecialCharKeyCodes) >= 0
            ||
        jQuery.inArray(event.keyCode, numberKeyCodes) >= 0);

    if (legalKeyCode === false)
        event.preventDefault();
}

function numbersAndCommasOnly(event) {
    var legalKeyCode =
        (!event.shiftKey && !event.ctrlKey && !event.altKey)
            &&
        (jQuery.inArray(event.keyCode, allowedSpecialCharKeyCodes) >= 0
            ||
        jQuery.inArray(event.keyCode, numberKeyCodes) >= 0
            ||
        jQuery.inArray(event.keyCode, commaKeyCode) >= 0);

    if (legalKeyCode === false)
        event.preventDefault();
}

function decimalsOnly(event) {
    var legalKeyCode =
        (!event.shiftKey && !event.ctrlKey && !event.altKey)
            &&
        (jQuery.inArray(event.keyCode, allowedSpecialCharKeyCodes) >= 0
            ||
        jQuery.inArray(event.keyCode, numberKeyCodes) >= 0
            ||
        jQuery.inArray(event.keyCode, commaKeyCode) >= 0
            ||
        jQuery.inArray(event.keyCode, decimalKeyCode) >= 0);

    if (legalKeyCode === false)
        event.preventDefault();
}

function currenciesOnly(event) {
    var legalKeyCode =
        (!event.shiftKey && !event.ctrlKey && !event.altKey)
            &&
        (jQuery.inArray(event.keyCode, allowedSpecialCharKeyCodes) >= 0
            ||
        jQuery.inArray(event.keyCode, numberKeyCodes) >= 0
            ||
        jQuery.inArray(event.keyCode, commaKeyCode) >= 0
            ||
        jQuery.inArray(event.keyCode, decimalKeyCode) >= 0);

    // Allow for $
    if (!legalKeyCode && event.shiftKey && event.keyCode == 52)
        legalKeyCode = true;

    if (legalKeyCode === false)
        event.preventDefault();
}

  可以看到,上面的代码中,对只输入数字,能输入数字和逗号,能输入数字和其他符号(货币)的,作了限制了.

2 在文本框中应用如下jquery:
  $(document).ready(function () {
    $("input[type=text].currenciesOnly").live('keydown', currenciesOnly);
});
  这里currenciesOnly是个样式,这里调用了上面的方法currenciesOnly

3) 再调用一个老外写的货币分3位符号插件,地址在:
http://code.google.com/p/jquery-formatcurrency/
再修改下:
   $(document).ready(function () {
    $("input[type=text].currenciesOnly").live('keydown', currenciesOnly)
                        .live('blur',
                                 function () {
                                     $(this).formatCurrency();
                                 }
                              );
});
  最后一个运行效果在:
http://jsfiddle.net/CBDea/1/ 可以看到
2
0
分享到:
评论
1 楼 zhong_pro 2011-12-30  
支持LZ。
另外美元的¥,$的ascii码不在那几个数组中。

相关推荐

    jquery控制input只能输入数字和小数点,并且只能有一个小数点,小数点前第一位不能为0

    本资源可以满足金额有关的一些input框输入,只能输入类似10.001的数据,并且小数点前第一位不能是0,我使用这个是为了管理后台做版本控制,我们只需要1.11这种格式的版本号

    jquery实现可发光的LED数字显示效果

    在这个特定的项目中,“jquery实现可发光的LED数字显示效果”是一个利用jQuery创建的动态视觉效果,常见于模拟电子显示屏或数字时钟等应用。这种效果能够吸引用户注意力,并为网页增添科技感。 首先,我们要理解LED...

    jquery限制最大输入数字插件特效

    在本主题“jquery限制最大输入数字插件特效”中,我们将深入探讨如何使用jQuery实现对用户输入数字的限制,以及如何创建类似新浪微博的动态效果。 首先,jQuery限制最大输入数字的功能主要应用于表单输入,特别是...

    jquery只能输入数字的文本框插件

    这个“jquery只能输入数字的文本框插件”是为了解决一个常见的用户界面需求:限制用户在特定输入框中只能输入数字,防止非数字字符的输入。这种功能对于处理货币、数量或者任何需要精确数值的数据输入场景尤其有用。...

    jquery数字自动分位

    标题中的"jquery数字自动分位"指的是在用户输入数字时,利用jQuery对输入的数字进行实时处理,将连续的数字按照一定的规则(例如每四位一隔)插入分隔符。这样,当用户输入大量数字时,可以避免混淆和错误。在银行...

    jquery实现的数字小键盘

    本项目"jquery实现的数字小键盘"是利用jQuery来创建一个专用于输入数字的虚拟键盘,确保用户输入的数据始终保持为数字格式,避免了在输入过程中可能出现的非数字字符,从而提高数据的准确性和安全性。 首先,我们要...

    效果非常好的jQuery数字显示效果

    "jOdometer"是压缩包中的文件名,这可能是一个特定的jQuery插件,用于实现上述的数字显示效果。jOdometer是一个流行的jQuery插件,专门用于创建类似机械式计数器的数字动画效果,它具有高度可定制性,可以调整样式、...

    jquery实现的带数字标注的焦点图片切换

    "jQuery实现的带数字标注的焦点图片切换"是利用jQuery库创建的一个功能,它不仅实现了图片的自动切换,还加入了数字指示器,让用户清楚地知道当前显示的是哪一张图片。 首先,jQuery是一个轻量级的JavaScript库,它...

    jquery数字键盘银行网站数字键盘

    总结一下,"jquery数字键盘银行网站数字键盘"是一个利用jQuery实现的轻量级插件,旨在为网页提供安全、美观的数字输入解决方案。它简化了开发流程,提升了用户体验,对于需要进行数字输入的网页应用来说,是一个值得...

    jquery动态数字增加

    在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。"jQuery动态数字翻滚计数到指定数字的文字特效代码"是一个常见的需求,尤其在显示实时更新的数据或者...

    jquery仿支付宝6位数字密码框特效代码

    在本文中,我们将深入探讨如何使用jQuery来实现一...在实际项目中,还需要考虑其他因素,如输入限制(只允许数字)、输入过程中的错误提示、以及最终的确认按钮等。记住,良好的用户体验和安全性是此类功能设计的核心。

    jQuery实现的仿支付宝6位数字密码框及输入特效源码.zip

    本资源“jQuery实现的仿支付宝6位数字密码框及输入特效源码.zip”显然是一个利用jQuery来模仿支付宝登录界面中六位数字密码输入框的示例代码。这个项目可能包含了一个HTML文件用于展示效果,CSS文件用于样式设计,...

    百度api首页数字变动效果 jquery特效

    【标题】"百度api首页数字变动效果 jquery特效"所涉及的知识点主要集中在JavaScript库jQuery以及网页动态效果的实现上。这种特效通常用于显示网站统计数据,如用户访问量、浏览量等,通过数字逐渐变化的方式吸引用户...

    使用HTML和jQuery实现6位密码输入和数字键盘绘制

    使用HTML和jQuery实现6位密码。使用H5结合JQuery,模仿支付宝和微信支付的六位密码输入,重新绘制定义数字键盘,在规定的数字键盘中的数字进行点击,将密码填进六格的输入框,一个简单的小demo,适合新手学习交流

    jquery实现数字抽奖

    【jQuery实现数字抽奖】是一种常见的互动技术,常用于各类企业活动和年会中,增加现场的趣味性和互动性。在本示例中,开发者利用jQuery库来创建一个可自定义的数字抽奖系统,用户可以输入自己的数据,如数字、手机...

    jQuery输入数字放大镜效果代码.zip

    《jQuery输入数字放大镜效果代码实现详解》 在网页开发中,为了提升用户体验,我们常常会采用各种交互式效果来增强表单元素的功能性。"jQuery输入数字放大镜效果代码"便是这样一种实用的交互设计,它使得用户在输入...

    jquery插件,是文本框只能输入数字

    这个插件的标题"jquery插件,是文本框只能输入数字"表明我们正在讨论一个特定的jQuery扩展,它的功能是限制用户在文本框中只能输入数字。这种功能在各种场景下都很实用,例如在线表单、财务输入或任何需要精确数字...

    JQuery实现的各种小效果

    在本文中,我们将深入探讨如何使用JQuery这一强大的JavaScript库来实现各种网页效果和实用插件。JQuery简化了DOM操作,使得实现复杂的交互和动画变得更加便捷。以下是一些使用JQuery实现的关键知识点: 1. **导航...

Global site tag (gtag.js) - Google Analytics