入门

监控属性

使用内置绑定

控制文本和外观

绑定逻辑控制

处理表单属性

解析模板

高级应用

插件

更多信息

"enable" 绑定

目的

enable 绑定使DOM元素只有在参数值为 true的时候才启用。在form表单元素 inputselect, 和 textarea 上非常有用。

The enable binding causes the associated DOM element to be enabled only when the parameter value is true. This is useful with form elements like input, select, and textarea.

例子

  1. <p>
  2. <input type='checkbox' data-bind="checked: hasCellphone" />
  3. I have a cellphone
  4. </p>
  5. <p>
  6. Your cellphone number:
  7. <input type='text' data-bind="value: cellphoneNumber, enable: hasCellphone" />
  8. </p>
  9. <script type="text/javascript">
  10. var viewModel = {
  11. hasCellphone : ko.observable(false),
  12. cellphoneNumber: ""
  13. };
  14. </script>

这个例子里,“Your cellphone number”后的text box 初始情况下是禁用的,只有当用户点击标签 “I have a cellphone”的时候才可用。

In this example, the “Your cellphone number” text box will initially be disabled. It will be enabled only when the user checks the box labelled “I have a cellphone”.

参数

  • 主参数

声明DOM元素是否可用enabled。

A value that controls whether or not the associated DOM element should be enabled.

非布尔值会被解析成布尔值。例如 0null 会被解析成 false,而 21 和非 null 对象会被解析给 true

Non-boolean values are interpreted loosely as boolean. For example, 0 and null are treated as false, whereas 21 and non-null objects are treated as true.

如果你的参数是observable的,那绑定会随着observable值的改变而自动更新enabled/disabled状态。如果不是,则只会设置一次并且以后不再更新。

If your parameter references an observable value, the binding will update the enabled/disabled state whenever the observable value changes. If the parameter doesn’t reference an observable value, it will only set the state once and will not do so again later.

  • 其它参数

注:任意使用JavaScript表达式

不紧紧限制于变量 – 你可以使用任何JavaScript表达式来控制元素是否可用。例如,

You’re not limited to referencing variables - you can reference arbitrary expressions to control an element’s enabledness. For example,

  1. <button data-bind="enable: parseAreaCode(viewModel.cellphoneNumber()) != '555'">
  2. Do something
  3. </button>

依赖性

除KO核心类库外,无依赖。

(c) knockoutjs.com