`

js限制input输入框只能输入2位小数

 
阅读更多
/**
 * $("#area").decimalinput();//文本框只能输入2位小数
 */
 
$.fn.decimalinput = function() {
    $(this).css("ime-mode", "disabled");
    this.bind("keypress", function(e) {
        if (e.charCode === 0) return true;  //非字符键 for firefox
        var code = (e.keyCode ? e.keyCode : e.which);  //兼容火狐 IE
        if (code >= 48 && code <= 57) {
            var pos = getCurPosition(this);
            var selText = getSelectedText(this);
            var dotPos = this.value.indexOf(".");
            if (dotPos > 0 && pos > dotPos) {
                if (pos > dotPos + 2) return false;
                if (selText.length > 0 || this.value.substr(dotPos + 1).length < 2)
                    return true;
                else
                    return false;
            }
            return true;
        }
        //输入"."
        if (code == 46) {
            var selText = getSelectedText(this);
            if (selText.indexOf(".") > 0) return true; //选中文本包含"."
            else if (/^[0-9]+\.$/.test(this.value + String.fromCharCode(code)))
                return true;
        }
        return false;
    });
    this.bind("blur", function() {
        if (this.value.lastIndexOf(".") == (this.value.length - 1)) {
            this.value = this.value.substr(0, this.value.length - 1);
        } else if (isNaN(this.value)) {
            this.value = "";
        }
        if (this.value)
            this.value = parseFloat(this.value).toFixed(2);
        $(this).trigger("input");
    });
    this.bind("paste", function() {
        if (window.clipboardData) {
            var s = clipboardData.getData('text');
            if (!isNaN(s)) {
                value = parseFloat(s);
                return true;
            }
        }
        return false;
    });
    this.bind("dragenter", function() {
        return false;
    });
    this.bind("keyup", function() {

    });
    this.bind("propertychange", function(e) {
        if (isNaN(this.value))
            this.value = this.value.replace(/[^0-9\.]/g, "");
    });
    this.bind("input", function(e) {
        if (isNaN(this.value))
            this.value = this.value.replace(/[^0-9\.]/g, "");
    });
};
//获取当前光标在文本框的位置
function getCurPosition(domObj) {
    var position = 0;
    if (domObj.selectionStart || domObj.selectionStart == '0') {
        position = domObj.selectionStart;
    }
    else if (document.selection) { //for IE
        domObj.focus();
        var currentRange = document.selection.createRange();
        var workRange = currentRange.duplicate();
        domObj.select();
        var allRange = document.selection.createRange();
        while (workRange.compareEndPoints("StartToStart", allRange) > 0) {
            workRange.moveStart("character", -1);
            position++;
        }
        currentRange.select();
    }

    return position;
}
//获取当前文本框选中的文本
function getSelectedText(domObj) {
    if (domObj.selectionStart || domObj.selectionStart == '0') {
        return domObj.value.substring(domObj.selectionStart, domObj.selectionEnd);
    }
    else if (document.selection) { //for IE
        domObj.focus();
        var sel = document.selection.createRange();
        return sel.text;
    }
    else return '';
}

 

分享到:
评论

相关推荐

    JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金) 两位小数

    在JavaScript中,我们经常需要限制用户在input输入框中输入特定格式的数据。例如,在处理金额或现金输入时,我们通常需要限制用户输入整数、小数,并且小数部分最多只能有两位数字。为了实现这样的输入限制,我们...

    input框只能输入数字和一个小数点

    ### 知识点二:JavaScript实现数字和小数点输入限制 这部分涉及到了JavaScript的事件监听器和字符串处理技术。以下是一种可能的实现方式: ```javascript // 获取input元素 var input = document.getElementById('...

    vue限制输入框只能输入8位整数和2位小数的代码

    文章介绍的是一项在Vue框架中限制用户输入内容的实践,具体要求用户在输入框中只能输入最多8位的整数和最多2位的小数。这项功能在开发涉及金额、数值计算等场景时尤为常见,需要确保用户的输入是符合格式规定的数字...

    js完美解决jsp文本框限制只能输入数字、小数问题

    ### js完美解决JSP文本框限制只能输入数字、小数问题 在Web开发过程中,确保用户输入的数据符合预期格式是一项非常重要的任务。特别是在涉及到数值输入时,开发者常常需要限制文本框仅能接受数字或者带有一定数量...

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

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

    输入框输入数字和小数点后两位

    这个是最直观的网页中常用的js判断输入框输入数字+小数点后两位(可以方便的更改为n位),不同于网上大部分的js判断方式,兼容ie,ff,chrome等多个常用浏览器,上传文件是一静态页面,更适合初学者的使用和更换,...

    只能输入数字的输入框.rar

    请输入数字,只能输入数字哦:&lt;input "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"&gt;

    js限制输入框只能输入数字(onkeyup触发)

    ### 知识点:使用JavaScript限制输入框只能输入数字 #### 概述 本文介绍了如何利用JavaScript实现仅允许用户在输入框中输入数字的功能。这一需求在各种基于Web的表单验证中非常常见,例如在填写电话号码、身份证...

    js限制input小数点前几位后几位

    1、可以动态设置小数点的前几位和后几位,进行实时校验; 2、通过正则表达式判断,超过设置的范围就不能输入了;...3、只能输入数字和小数点; 4、已经封装好的插件,可以直接使用。有使用的示例和必要的注释。

    js正则表达式限制文本框只能输入数字,能输小数点.

    ### 正则表达式在JavaScript中的应用:限制文本框只能输入数字及小数点 在Web开发中,经常需要对用户输入的数据进行合法性验证。为了确保数据格式正确且符合预期,开发者通常会在前端使用JavaScript结合HTML来实现...

    Angular限制input框输入金额(是小数的话只保留两位小数点)

    输入框要求输入金额,只能输入数字,可以是小数,必须保留小数点后两位。 js判断部分: checkInput: function (event) { var id = event.target.getAttribute(“id”);//获取input的id var reg = /^[-?\d]+(.)?(\d{...

    js各种限制input输入汇总

    ### JS各种限制input输入汇总知识点解析 #### 一、取消按钮按下时的虚线框 在Web开发过程中,用户点击按钮或输入框等元素时,可能会出现边框高亮的效果,这种效果通常是为了提高交互性而设计的。但在某些场景下,...

    js 限制input只能输入数字、字母和汉字等等

    本文将详细解释如何通过JavaScript实现对input元素输入内容的限制,主要包括以下几种限制情况:只能输入数字、字母和汉字;只能输入数字,包括小数点;不能输入特定字符;限制小数点后位数等。 1. 限制只能输入数字...

    html限制文本框输入小数点 数字 字母 汉字 等

    - 此处使用正则表达式 `[^\d|chun]` 来限制输入框只能输入数字或特定字符(这里用 `chun` 作为示例)。 #### 方法七:限制输入框只接受特定格式的小数 ```html &lt;input onKeyPress="if ((event.keyCode || event....

    限制html文本框input只能输入数字和小数点

    本文详细介绍了如何使用HTML和...通过上述方法,可以有效地限制用户在文本框中只能输入数字和小数点,防止输入格式错误导致的数据问题。在实际应用中,开发者可以根据需要调整正则表达式,以实现更多复杂的输入验证。

    JS输入框限制数值输入插件

    在JavaScript编程中,输入框(INPUT)是网页交互中常用的一种元素,用户可以通过它输入文本。然而,在某些情况下,我们可能需要对用户输入的数据进行特定的限制,例如限制输入为数值,只允许整数、浮点数或者特定的...

    js限制文本框只输入正整数

    在探讨如何利用JavaScript限制文本框只输入正整数这一主题时,我们首先应当明确目标:确保用户在文本框中输入的数据仅包含正整数,即非负整数(不包括小数、负数以及任何非数字字符)。这在许多场景下至关重要,比如...

    JS控制只能输入数字并且最多允许小数点两位

    在网页设计中,控制用户输入是一种常见的需求,特别是在需要用户输入数字的场景下,如何限制输入框只接受数字,并且最多允许小数点两位,这需要对用户输入进行即时的验证和处理。 在给定的文件中,介绍了如何使用...

    使用正则限制input框只能输入数字/英文/中文等等

    在网页开发中,为input框设置输入限制是常见的需求之一,使用正则表达式是实现这一需求的有效手段。正则表达式是一种强大的文本匹配工具,它可以根据预设的模式匹配字符串,实现对用户输入内容的校验。本文将详细...

Global site tag (gtag.js) - Google Analytics