我有一个文本框,我在其中使用 jQuery 将输入限制为仅数字字符。我遇到的问题是,当 4 位代码以 0 开头时,它会在焦点输出或输入另一个数字时从文本框中删除。这是一个 mvc3 应用程序,数据类型是字符串。如何保持前导零不被删除?我的 jQuery 代码中有什么我没有注意到的吗?如果有多个前导零,例如“0025”,这也适用。
$('#selector').bind('keyup paste', function (e) {
if (checkArrowKeyEntry(e)) {
var ob = $(this);
if (e.type == 'paste') {
setTimeout(function () {
myFuncion(ob);
}, 1);
} else {
myFuncion(ob);
}
}
});
function myFuncion(ob) {
ob.val(numericInputOnly(ob.val()));
}
function checkArrowKeyEntry(e) {
isNotArrowKey = true;
if (e.keyCode == 37 || e.keyCode == 39) { //|| e.keyCode == 8 || e.keyCode == 46) {
// leftarrow, rightarrow, delete, backspace
isNotArrowKey = false;
}
return isNotArrowKey;
}
function numericInputOnly(inputvalue) {
if (!isNaN(parseInt(inputvalue, 10))) {
inputvalue = parseInt(inputvalue, 10);
}
else {
inputvalue = "";
}
inputvalue = inputvalue.toString().replace(/[^0-9]/g, '');
return inputvalue;
}