[英]Input tag with type number to allow pass a Number and Floating values with one decimal point iin jsp , javascript
[英]Javascript : Number input - prevent more than one decimal point
我正在尋找在淘汰賽上輸入數字的唯一類型 。 可接受的答案很好用,但是如何防止輸入一個以上的小數點(如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();
}
}
});
}
};
自定義綁定對我來說並不好。 我建議只使用Knockout Validation ,它在我的工作流程中被證明是一個很棒的插件,具有剔除功能。 語法很簡單: ko.observable(...).extend({ number: true })
。 您還可以添加最小/最大驗證: .extend({ number: true, min: 0, max: 100 }) // percentage
,該插件允許將CSS類添加到無效元素中。
請參見下面的示例。 它可以滿足您的需求。
function viewModel() { this.number = ko.observable(0).extend({ number: true }); } ko.applyBindings(new viewModel(), document.body);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout-validation/2.0.3/knockout.validation.js"></script> <input data-bind="textinput: number" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.