我一直在做一个项目,我需要一个数字输入和一个 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}" />
关于javascript - Knockoutjs 中的数字输入和范围 valueUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17841067/