gpt4 book ai didi

javascript - 在 knockout 上制作仅输入数字类型

转载 作者:行者123 更新时间:2023-12-03 01:37:41 29 4
gpt4 key购买 nike

我读了很多教程,但我不知道该怎么做,这就是输入

input(type="text",name="price",id="price"data-bind="text: price,valueUpdate:['afterkeydown','propertychange','input']")

这是我的 View 模型

price: ko.computed(function()
{
return parseFloat(this.replace(' ','').replace(/[^0-9\.]+/g,"")) || '';
},this)

但这会导致错误:这没有方法替换???我如何将价格值传递给计算函数?

最佳答案

最好创建自定义绑定(bind) http://knockoutjs.com/documentation/custom-bindings.html只接受允许的字符 [0-9,.] 作为数字表示。

将此行放入您的 View 中

<input id="text" type="text" data-bind="numeric, value: number">

将此行放入您的模型中(记住将数字绑定(bind)为可观察属性)

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();
}
}
});
}
};

关于javascript - 在 knockout 上制作仅输入数字类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17048468/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com