나는 make an input only-numeric type on knockout을보고있었습니다. 대답은 정상적으로 작동하지만 소수점 (예 : 4.4.4)을 두 번 이상 입력하지 못하도록 할 수 있습니까 (또는 두 번째 소수점을 어떻게 방지 할 수 있습니까?).자바 스크립트 : 숫자 입력 - 소수점 한 개 이상을 방지합니다
코드는 다음과 같이 진행됩니다
이<input id="text" type="text" data-bind="numeric, value: number">
ko.bindingHandlers.numeric = {
init: function (element, valueAccessor) {
$(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
(event.keyCode == 65 && event.ctrlKey === true) ||
// Allow: . ,
(event.keyCode == 188 || 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();
}
}
});
}
};
이 도움이 될 것입니다 http://stackoverflow.com/questions/39394445/number-input-box-in-knockout-js이 – Rajesh
안녕 인 Rajesh이 허용 대답에 내가 입력 캔트 소수점이있는 숫자 –
[Fiddle] (https://jsfiddle.net/RajeshDixit/w5dh36jv/8/)과 같은 것을 시도 할 수 있습니다. 이것은 완전한 해결책이 아님을주의하십시오. 적절한 패턴을 공식화 할 수 있다면이 솔루션을 사용하십시오. 그렇지 않으면 내 질문에 접근 할 수 있습니다. 그들은 잘 작동하지만, 그들은 또 하나의 프로세싱을 추가 할 것입니다. – Rajesh