html - knockout attr 与 'readonly' 和 'disabled' 等属性的绑定(bind)

标签 html data-binding knockout.js readonly disabled-input

Knockout 的“attr”数据绑定(bind)“readonly”“disabled” 等独立属性一起使用的“最佳实践”建议是什么>?

这些属性特殊因为它们通常通过将属性值设置为属性名称来启用(尽管如果您只在 HTML 中包含没有任何值的属性名称,许多浏览器工作正常):

<input type="text" readonly="readonly" disabled="disabled" value="foo" />

但是,如果您希望应用这些属性,一般的做法是简单地将它们从 HTML 中完全省略(而不是做类似 readonly="false"的事情):

<input type="text" value="foo" />

Knockout 的“attr”数据绑定(bind)不支持这种情况。只要我提供了一个属性名称,我还需要提供一个值:

<input type="text" data-bind="attr: { 'disabled': getDisabledState() }" />

是否有一种跨浏览器的方式来关闭“已禁用”或“只读”?或者是否有一个自定义绑定(bind)的技巧,如果我不希望该项目被禁用或设为只读,我可以使用它来不呈现任何内容

最佳答案

Knockout 的“attr”数据绑定(bind)确实支持这种情况,只需从您的 getDisabledState() 函数返回 nullundefined 然后它不会发出属性。

演示 Fiddle .

关于html - knockout attr 与 'readonly' 和 'disabled' 等属性的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14165213/

相关文章:

asp.net - 我可以将 HTML5 WebSockets 用于通常使用 AJAX 完成的任务吗?

javascript - Codrops 页面转换。如何为效果创建单独的按钮而不是列表项?

html - 修复带有双引号的 HTML 属性值

c# - 我应该在 Windows 窗体项目中使用数据绑定(bind)吗?

data-binding - 在 polymer 1.x中绑定(bind)到[[var]]和{{var}}有什么区别?

javascript - Knockout 可以观察 ES6 符号吗?

php - 在 PHP 中使用变量创建预组装的 HTML 元素(阅读以获得更好的解释)

c# - 验证错误阻止调用属性 setter

javascript - knockout View 模型功能仅影响最后一个实例

php - 如何为外部站点调用基于 javascript 的表单