第一種:輸入整形判斷
function getEvent() { if (document.all) { return window.event; } //for ie func = getEvent.caller; while (func != null) { var arg0 = func.arguments[0]; if (arg0) { if ((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof (arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) { return arg0; } } func = func.caller; } return null; } function isnumber() { var ev = getEvent();
if (ev.keyCode == 8) return true; //可刪除 if (ev.keyCode < 48 || ev.keyCode > 57) return false; }
<input id="Text1" name="btntest" type="text" style="IME-MODE: disabled;" onkeydown="return isnumber()" onpaste="return false" ondragenter="return false"/>
第二種:輸入浮點和整形判斷
function isnumber(obj) { if (isNaN(obj.value)) { obj.value = ""; return false; } return true; }
<input id="Text1" name="btntest" type="text" style="IME-MODE: disabled;" onkeyup="isnumber(this)" onpaste="return false" ondragenter="return false"/>
第三種:推薦,能夠判斷中文輸入法
/** * @description 給指定文本框綁定輸入驗證(適合非中文輸入法輸入驗證),如驗證輸入必須為數字VerifyInput("txtNumber","[^\\d]"); * @param controlId 需要綁定文本框id * @param regex 驗證正則表達式(取反),如果正則表達式中有斜杠,使用雙斜杠 */ function VerifyInput(controlId, regex) { var myRegExp = new RegExp(regex, 'g'); $("#" + controlId).bind("input propertychange", function () { this.value = this.value.replace(myRegExp, ''); }); }
頁面調用
<input id="txtNumber" type="text" class="input form-control" style="ime-mode:disabled" onpaste="return false" ondragenter="return false" />
$(function () {
VerifyInput("txtNumber", "[^\\d]");//驗證文本框輸入必須為數字
});
參考:https://www.cnblogs.com/llguanli/p/7340708.html
第四種:限制只能輸入整數和浮點判斷,推薦
function verifyIsNumberStart(control) { if (!control.value.match(/^[\+\-]?\d*?\.?\d*?$/)) control.value = control.t_value; else control.t_value = control.value; if (control.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/)) control.o_value = control.value } function verifyIsNumberEnd(control) { if (!control.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/)) control.value = control.o_value; else { if (control.value.match(/^\.\d+$/)) control.value = 0 + control.value; if (control.value.match(/^\.$/)) control.value = 0; control.o_value = control.value } }
<input type="text" onkeypress="verifyIsNumberStart(this)" onkeyup="verifyIsNumberStart(this)" onblur="verifyIsNumberEnd(this)" ondragenter="return false"/>