2014-10-28 75 views
0

我正在为Android的迷你高尔夫应用程序工作,并且我正在使用淘汰赛foreach绑定来显示18行输入数字字段,用户可以在其中插入需要的字符数每个洞。限制和/或自动更改数字输入字段的值

我的第一个要求是我希望那些输入字段的行为,以便当用户输入“9”时,它应该自动变为10(因为迷你高尔夫的规则说如果用户使用超过8次命中,该洞应该算作10)。

我的第二个要求是现在可以输入高于10的数字。我必须指定您不能在输入字段中输入高于10的数字。

任何人有任何想法来解决我的要求?

这是我的KO的foreach:

<!-- ko foreach: rounds --> 
<input class="input-block-level" 
     name="number" 
     type="number" 
     value="" 
     data-bind="value: hits,valueUpdate: 'keyup'" 
     maxlength="2" 
     min="1" 
     max="10"/> 
<!-- /ko --> 
+0

也许[淘汰赛 - 验证插件](https://github.com/Knockout-Contrib/Knockout-Validation)是有趣的。 – Origineil 2014-10-28 18:49:04

+0

如果命中/笔画计数上限为10,则可以使用不同的UI控件(+/-,滑块)通过不直接暴露基于文本的输入字段来强制执行限制。 – Origineil 2014-10-28 18:58:43

+0

我希望它可以完成从JavaScript形式的HTML文件,而不是在淘汰赛里面 – 2014-10-28 19:57:32

回答

0

你可以订阅你hits观察的检查值来决定是否触发进一步的行动与否。检查出official documentation about subscribers

+0

我已经订阅了点击,但我无法从我的ko.observable(点击)中获取数字 – 2014-10-28 18:00:05

+0

我假设你有在视图模型中声明可观察的'self.hits = ko.observable()'。现在,您可以简单地在您的subscribe函数中调用'self.hits()'来访问该值。括号是必要的,因为它是可观察的。 – Daniel 2014-10-29 08:24:47

+0

好吧,我现在可以得到的价值,但我如何将其更改为10,并更新输入字段与新号码? – 2014-10-29 09:30:48

1

我得到了它使用JavaScript来的工作,检查了有关领域都对数字9和数量大于10,两者都将变成10号,所以现在的应用程序的工作,因为它应该