而不是在每个文本输入中重复此设置?
为了清楚起见,我说的是这个:
<input type="text" name="email"data-bind="value: email, valueUpdate:'afterkeydown'" />
对于我 90% 的输入,我更喜欢上面的这个'change'
——当前的默认值。
而不是在每个文本输入中重复此设置?
为了清楚起见,我说的是这个:
<input type="text" name="email"data-bind="value: email, valueUpdate:'afterkeydown'" />
对于我 90% 的输入,我更喜欢上面的这个'change'
——当前的默认值。
您可以替换现有值 bindingHandler 以添加 afterkeydown 绑定。
请参阅出色的解决方案如何让 Knockout JS 在按键上进行数据绑定而不是失去焦点?
您不能直接为所有文本输入设置默认功能。你可以做的是创建一个模板输入,然后所有这些都可以只是这些模板,例如
<!-- 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>
由于 Knockout 中没有选项可以更改 valueUpdate 默认值的工作方式,因此您唯一的选择是更改 Knockout 库源以使其按您想要的方式工作。如果库曾经更新过,则必须再次进行此更改,或者您可以要求 Knockout 的开发人员添加一个可以更改默认 valueUpdate 事件的配置选项。
如果你可以用一个类“标记”目标输入,你可以试试这个:
$('.yourClass').attr('data-bind', "value: email, valueUpdate:'afterkeydown'");
我希望它有帮助