Javascript 是否可以设置valueUpdate:';afterkeydown';作为Knockout.js中的默认值update?

Javascript 是否可以设置valueUpdate:';afterkeydown';作为Knockout.js中的默认值update?,javascript,knockout.js,knockout-2.0,Javascript,Knockout.js,Knockout 2.0,而不是在每个文本输入中重复此设置 说清楚一点,我说的是: <input type="text" name="email"data-bind="value: email, valueUpdate:'afterkeydown'" /> 对于90%的输入,我更喜欢上面的“更改”-当前默认值。如果可以使用类“标记”目标输入,可以尝试以下方法: $('.yourClass').attr('data-bind', "value: email, valueUpdate:'afterkeydo

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

说清楚一点,我说的是:

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

对于90%的输入,我更喜欢上面的
“更改”
-当前默认值。

如果可以使用类“标记”目标输入,可以尝试以下方法:

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

我希望它有帮助

您不能直接为所有文本输入设置默认功能。您可以做的是创建一个模板输入,然后所有这些都可以是这些模板

<!-- 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事件。

您可以替换现有的ValueBindingHandler来添加afterkeydown绑定


查看brillant解决方案

您尝试了哪些方法?截至去年,答案似乎是“您不能,这里有一些解决方法。”自本次讨论开始以来,Knockout不断进行改进,并出现了重大版本号更改(v2到v3)。有没有办法做到这一点呢?从技术上讲,这是可行的,但我更希望有一些看起来更像普通HTML的东西。谢谢你的回答:)我想问一下,除了美学方面的原因之外,为什么需要传统的html,就像你已经在使用knockout一样,模板和无容器表示法等东西可以真正释放knockout的强大功能,而其他开发人员已经有了学习曲线。这确实是美学方面的问题。我可能有点吹毛求疵,但目前我更喜欢在隐藏输入元素本身的上面添加样板文件“valueUpdate:'afterkeydown'”。它只是向我传达了更多的“意义”。个人偏好我猜:)这是一个选择,但仍然有样板代码涉及-额外的类。在这种情况下,“valueUpdate:'afterkeydown'”可能不会太长,并且显示出更多的“含义”。