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'”可能不会太长,并且显示出更多的“含义”。