input限制只能輸入整數或保留小數點後2位的浮點數
1、test.js檔案內容如下:
/**
* 使用示例: $("#price").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);//parseFloat(this.value).toFixed(2);
}
$(this).trigger("input");
var value = this.value;
var reg = /^(([1-9]\d*)(\.\d{1,2})?|0\.([1-9]|\d[1-9])|0)$/;
if (reg.test(value)) {
$(this).val(value);
$("#errMsg").text("√");
} else {
$("#errMsg").text("×");
}
});
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 '';
}
2、demo.html原始碼如下:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$("#price").decimalinput();
});
</script>
<script src="test.js"></script>
</head>
<body>
<input type="text" id="price" maxlength="10" /><span id="errMsg"></span>
</body>
</html>
相關文章
- Adroid edittext 輸入小數時只能輸入到小數點後的固定位數
- JavaScript浮點數保留兩位小數JavaScript
- Input 輸入框中 只能輸入正整數
- el-input 只能輸入整數或者小數,而且有位數現在
- input輸入框加入限制只能輸入正整數,輸入其他字元會自動清除字元
- C# textbox只能輸入數字和小數點C#
- vue---input只能輸入數字,且限制長度Vue
- input 輸入框只能輸入數字
- 金額輸入校驗,限制小數點後兩位
- PHP 保留小數點後有效數字(四捨五入)PHP
- 輸入框只能輸入負數,整數,2位小數(鍵盤彈起事件)事件
- QLineEdit限定只能輸入整數
- mysql格式化小數保留小數點後兩位(小數點格式化)MySql
- iOS小數點格式化:最多保留兩位小數,小數點後末尾的0不要iOS
- Vue自定義指令實現input限制輸入正整數Vue
- input 限制字數輸入時候 限制字數會出現負數
- 浮點數小知識點
- 【廖雪峰python入門筆記】整數和浮點數Python筆記
- vue中自定義指令,限制input值為number和小數點的位數Vue
- vue element el-input輸入限制數字Vue
- js-正負數保留小數點特定位數JS
- 浮點數
- nextLine()問題:如果在讀取整數或浮點數後緊接著讀取字串,可能會遇到nextLine()方法跳過輸入的問題。可以透過在讀取整數或浮點數後新增一個額外的nextLine()呼叫來解決這個問題。字串
- 寫一個方法,實時驗證input輸入的值是否滿足金額如:3.56(最多隻有兩位小數且只能數字和小數點)的格式,其它特殊字元禁止輸入字元
- Python如何保留float型別小數點後3位Python型別
- 浮點數的理解
- excel 整數匯入資料庫轉成varchar型別後多了小數點Excel資料庫型別
- Vue只能輸入數字Vue
- hutool jsonutil BigDecimal 保留小數點處理JSONDecimal
- 浮點數的比較
- 大數相乘(浮點數)實現
- 輸入一個整數,返回這個整數的位數
- Python如何對浮點數進行取整操作?Python
- 短視訊軟體開發,flutter 輸入框限制輸入 數字、小數Flutter
- Java中浮點數的坑Java
- 第一章:位運算-------輸入浮點數,輸出對應二進位制數
- js 將負數或小數轉成正整數JS
- python處理浮點數Python