javascript - Knockoutjs 中的数字输入和范围 valueUpdate

标签 javascript html knockout.js

我一直在做一个项目,我需要一个数字输入和一个 slider ,请参阅此处的 fiddle http://jsfiddle.net/Dt7Ka/116/

<h2>Slider Demo</h2>

RAM: <input type="number" data-bind="value: ram,  valueUpdate: 'afterkeydown', attr: {max: 8192, min: 512, step: 1}" />
<div style="margin: 10px" data-bind="slider: ram, sliderOptions: {min: 512, max: 8192, range: 'min', step: 1}"></div>

如果有人想手动输入一个数字(比如 2048),我发现 knockout 会变得矫枉过正并阻止我正确输入 2048。

建议?

最佳答案

这是因为您设置了 valueUpdate: 'afterkeydown'。这会导致绑定(bind)在每次按下键时尝试更新,并且由于您的最小值是 512,因此尝试输入值 2 将失败。

您不能输入 2048,因为它会尝试在第一个键之后更新。如果您只接受我们的那部分绑定(bind),它将正常工作。

<input type="number" data-bind="value: ram, attr: {max: 8192, min: 512, step: 1}" />

http://jsfiddle.net/Dt7Ka/118/

关于javascript - Knockoutjs 中的数字输入和范围 valueUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17841067/

相关文章:

javascript - JavaScript 数组实际上是作为数组实现的吗?

javascript - 在 Web 上使用 JavaScript 将文本文件保存到特定文件夹

javascript - Knockout JS中的数字输入框

knockout.js - 随着绑定(bind)属性的变化,自动排序 ko.observableArray

javascript - 在javascript中显示数组中的随机图像

javascript - react native : Function called twice automatically inside FlatList

javascript - 为什么我无法在这个 JQuery 脚本中检索和打印从我的 DOM 检索到的元素的标签名称?

javascript - knockout : Unable to process binding

javascript - 无法更改 Angular JS 中的位置路径

html - 如何将 Bootstrap bg-x(例如 bg-danger)类添加到输入文本框?