【发布时间】:2015-01-19 09:07:07
【问题描述】:
我有一个可观察数组绑定到表的淘汰模型。我想要一个按钮,当单击该按钮时,焦点文本框的值会加倍。我想这样做,而不需要为每个文本框或每个可观察的 ko 创建一个可观察的“hasFocus”。我遇到的几个问题:-
- 如果按钮只是直接使用 jQuery 编辑文本框的值,ko 值不会得到更新。我需要一种方法来告诉按钮更改基础值
- 如果我关注文本框然后单击按钮,文本框上的焦点会丢失,因此客户端也不记得关注的是哪个文本框
【问题讨论】:
-
但是单击按钮时文本框不会失去焦点吗?用户界面似乎非常不直观。通常每个文本框都有一个按钮
-
我同意@Wayne。您需要为每个文本框设置一个按钮,或者在文本框旁边放置一个单选按钮以指示您要使用哪个按钮。将焦点用于这样的事情很奇怪。用户首先必须点击文本框,然后点击页面其他地方的按钮?
-
另外 - 使用 jQuery 更新文本框值 - 不要。更新支持文本框的 observable。这就是首先使用淘汰赛的意义所在。
-
有效点 - 它也确实看起来不直观,但如果你有大约 50 个文本框,在每个文本框下方放置复选框或单选按钮会更奇怪。有什么更好的选择?
-
@Ronbear 很难说没有看到页面的设计/特性/功能。如果这是它需要的工作方式,也许可以使用 Rune 的答案与应用于最后一个焦点元素的视觉样式相结合。
标签: javascript jquery knockout.js