這個怎麼樣POJS,我使用的是一個跨瀏覽器addEvent
功能,而不是jQuery和不使用任何regexs,但我相信它達到你在找什麼。按+
或-
更改值的符號。
HTML
<input id="test" type="text" />
的Javascript
/*jslint maxerr: 50, indent: 4, browser: true */
(function() {
"use strict";
function addEvent(elem, event, fn) {
if (typeof elem === "string") {
elem = document.getElementById(elem);
}
function listenHandler(e) {
var ret = fn.apply(null, arguments);
if (ret === false) {
e.stopPropagation();
e.preventDefault();
}
return ret;
}
function attachHandler() {
window.event.target = window.event.srcElement;
var ret = fn.call(elem, window.event);
if (ret === false) {
window.event.returnValue = false;
window.event.cancelBubble = true;
}
return ret;
}
if (elem.addEventListener) {
elem.addEventListener(event, listenHandler, false);
} else {
elem.attachEvent("on" + event, attachHandler);
}
}
function verify(e) {
var target = e.target, // shouldn't be needed: || e.srcElement;
value = target.value,
char = String.fromCharCode(e.keyCode || e.charCode);
if (value.charAt(0) === "-") {
if (char === "+") {
e.target.value = value.slice(1);
}
} else if (char === "-") {
e.target.value = char + value;
return false;
}
value += char;
return parseFloat(value) === +value;
}
addEvent("test", "keypress", verify);
}());
在jsfiddle
我覺得我用正確的價值觀keyCode || charCode
但你可能想搜索和檢查。正確的參數的摘要可here
這是非常好的輸入無效值。 http://jsfiddle.net/TJ29G/ – Ilya