而不是在每个文本输入中重复此设置?
要说清楚,我正在谈论这个:
<input type="text" name="email"data-bind="value: email, valueUpdate:'afterkeydown'" />
对于90%的输入,我更喜欢上面的'change'
- 当前默认值。
答案 0 :(得分:1)
您无法直接为所有文本输入设置默认功能。你可以做的是创建一个模板输入,然后所有这些只是那些模板,例如
<!-- ko template:{name:'input-template', data: email}--><!--/ko-->
通过使用无容器符号,您可以避免创建额外的html元素
然后只需用你想要的任何东西定义模板:
<script type="text/html" id="input-template">
<input type="text" name="$data" data-bind="value: $data, valueUpdate:'afterkeydown'"/>
</script>
答案 1 :(得分:1)
您可以替换现有值bindingHandler以添加afterkeydown绑定。
请参阅明智的解决方案How can I get Knockout JS to data-bind on keypress instead of lost-focus?
答案 2 :(得分:0)
如果你可以用类“标记”目标输入,你可以试试这个:
$('.yourClass').attr('data-bind', "value: email, valueUpdate:'afterkeydown'");
我希望它有所帮助
答案 3 :(得分:0)
由于Knockout中没有选项可以更改valueUpdate默认的工作方式,因此您唯一的选择就是更改Knockout库源以使其按您希望的方式工作。如果库已更新,则必须再次进行此更改,或者您可以要求Knockout的开发人员添加可以更改默认valueUpdate事件的配置选项。