У меня есть код ниже, который ограничивает ввод только номерами и выбирает количество комбинаций клавиш. Но я также хочу ограничить ввод только одной десятичной точкой.Нокаут - ограничивать ввод только номерами с одной десятичной точкой
number: {
init: function (element) {
// Allows only numbers with decimals
$(element).on("keydown", function (event) {
// Allow: backspace, delete, tab, escape, and enter
if (event.keyCode === 46 || event.keyCode === 8 || event.keyCode === 9 || event.keyCode === 27 || event.keyCode === 13 ||
// Allow: Ctrl+A, Ctrl + C, Ctrl + V, Ctrl + X
((event.keyCode === 65 || event.keyCode === 67 || event.keyCode === 86 || event.keyCode === 88) && (event.ctrlKey === true || event.metaKey === true)) ||
// Allow: .
(event.keyCode === 190 || event.keyCode === 110) ||
// Allow: home, end, left, right
(event.keyCode >= 35 && event.keyCode <= 39)) {
// let it happen, don't do anything
return;
} else {
// Ensure that it is a number and stop the keypress
if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
event.preventDefault();
}
}
});
}
}
Я пытался добавить '$(element).val().indexOf('.') !== -1'
, как показано ниже, но это ничего не делать, и я до сих пор можно ввести как много периодов, которые я хочу. Как я должен фактически ограничивать это?
if (event.shiftKey || ($(element).val().indexOf('.') !== -1 && (event.keyCode === 190 || event.keyCode === 110)) || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
event.preventDefault();
}
... а потом я приду вместе и вставьте вместо него «lorem ipsum». :-) –
@ T.J.Crowder Не думал об этом ха-ха .. – user3312508