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>
相關文章
- JavaScript浮點數保留兩位小數JavaScript
- Adroid edittext 輸入小數時只能輸入到小數點後的固定位數
- Input 輸入框中 只能輸入正整數
- js實現如何保留float浮點數小數點後兩位JS
- 限制HTML的input只能輸入數字、英文、漢字...HTML
- input輸入框加入限制只能輸入正整數,輸入其他字元會自動清除字元
- C# textbox只能輸入數字和小數點C#
- input 輸入框只能輸入數字
- vue---input只能輸入數字,且限制長度Vue
- PHP 保留小數點後有效數字(四捨五入)PHP
- javascript保留小數點後兩位JavaScript
- 輸入框只能輸入負數,整數,2位小數(鍵盤彈起事件)事件
- mysql格式化小數保留小數點後兩位(小數點格式化)MySql
- iOS小數點格式化:最多保留兩位小數,小數點後末尾的0不要iOS
- js如何實現數字保留小數點後兩位小數JS
- 浮點數小知識點
- Vue自定義指令實現input限制輸入正整數Vue
- input 限制字數輸入時候 限制字數會出現負數
- 【廖雪峰python入門筆記】整數和浮點數Python筆記
- QLineEdit限定只能輸入整數
- vue中自定義指令,限制input值為number和小數點的位數Vue
- jquery實現的限制文字框只能夠輸入大於0整數jQuery
- js-正負數保留小數點特定位數JS
- 浮點數
- vue element el-input輸入限制數字Vue
- javascript將浮點數數變為整數簡單介紹JavaScript
- asp.net input文字框只能輸入數字jsASP.NETJS
- 浮點數的理解
- excel 整數匯入資料庫轉成varchar型別後多了小數點Excel資料庫型別
- 限制文字框只能輸入數字:Asp.net&C#ASP.NETC#
- Vue只能輸入數字Vue
- Python如何保留float型別小數點後3位Python型別
- MySQL 有意思的浮點數和定點數MySql
- 《松本行弘的程式世界》讀書筆記(下)——文字編碼、整數、浮點小數筆記
- [譯]浮點數的危害
- jquery實現的限制文字框只能輸入非負實數jQuery
- 大數相乘(浮點數)實現
- 限制文字框只能夠輸入數字程式碼例項