如何在knockout.js中实现数字文本框?

时间:2012-07-30 01:06:17

标签: knockout.js

这是非常好的示例,但使用另一个框架(KendoUI):http://demos.kendoui.com/web/numerictextbox/index.html

如何在没有其他框架的情况下实现它(仅限knockout.js + jquery)

编辑:

我必须防止非数字字符入口。

2 个答案:

答案 0 :(得分:4)

我首先来看看扩展器上的文档,其中有一个类似于您正在寻找的示例:

http://knockoutjs.com/documentation/extenders.html

您可能还想查看有关自定义绑定的文档:

http://knockoutjs.com/documentation/custom-bindings.html


UPDATE 看看这篇文章:https://stackoverflow.com/a/891749/418613

这可能是将输入限制为仅限数字的最简单方法

答案 1 :(得分:1)

这是一个简单的技巧......你有2个输入:一个输入值未格式化(可观察),另一个输入值格式化(计算?)。 使格式化的值可见,另一个隐藏,并在事件上(单击)更改它,反之则失去焦点会改变输入。

以下是剑道的源代码: 格式化(可见):

<input type="text" class="k-formatted-value k-input" tabindex="0" aria-disabled="false" aria-readonly="false" style="display: inline-block;">

无格式(隐藏):

<input id="currency" type="text" value="30" min="0" max="100" data-role="numerictextbox" role="spinbutton" class="k-input" aria-valuemin="0" aria-valuemax="100" aria-valuenow="30" aria-disabled="false" aria-readonly="false" style="display: none;"><span class="k-select">