0

而不是在每个文本输入中重复此设置?

为了清楚起见,我说的是这个:

<input type="text" name="email"data-bind="value: email, valueUpdate:'afterkeydown'" />

对于我 90% 的输入,我更喜欢上面的这个'change'——当前的默认值。

4

4 回答 4

1

您可以替换现有值 bindingHandler 以添加 afterkeydown 绑定。

请参阅出色的解决方案如何让 Knockout JS 在按键上进行数据绑定而不是失去焦点?

于 2013-10-21T10:03:11.607 回答
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>
于 2013-05-15T20:54:02.910 回答
0

由于 Knockout 中没有选项可以更改 valueUpdate 默认值的工作方式,因此您唯一的选择是更改 Knockout 库源以使其按您想要的方式工作。如果库曾经更新过,则必须再次进行此更改,或者您可以要求 Knockout 的开发人员添加一个可以更改默认 valueUpdate 事件的配置选项。

于 2013-09-20T20:40:22.520 回答
0

如果你可以用一个类“标记”目标输入,你可以试试这个:

$('.yourClass').attr('data-bind', "value: email, valueUpdate:'afterkeydown'");

我希望它有帮助

于 2013-05-15T20:39:32.503 回答