Knockout2.x开发 第十四章:表单域Form fields:disable绑定,value绑定
2013-05-02 17:40 阅读(198)

"disable" 绑定


disable 绑定和 enable 绑定正好相反,使DOM元素只有在参数值为 true 的时候才禁用。在form表单元素 input, select, 和textarea上非常有用。

这里不再举例,请参考enable 绑定。


"value" 绑定

之前我们接触过text binding,它可以绑定到DOM元素的文本内容,但是如果我们的UI元素是form的元素,特别是input,select,textarea的时候,就需要用到value binding了.


基本用法

Html代码

<p>Login name: <input data-bind="value: userName" /></p>
<p>Password: <input type="password" data-bind="value: userPassword" /></p>
Js代码
var viewModel = {
        userName: ko.observable("aaa"),        // 初始化为空
        userPassword: ko.observable("abc"), //初始密码
    };

ko.applyBindings(viewModel);

使用valueUpdate设置更新时机

一般情况下,当我们为一个文本框设置了value绑定时,并且绑定的属性是observable的,那么当输入内容后焦点离开文本框时才会自动更新属性。ko提供了valueUpdate 属性,通过设置这个属性我们可以有选择的控制这个更新时机。

下面是valueUpdate 属性可选的值



如果你想让你的view model进行实时更新,使用 "afterkeydown" 是最好的选择。

例子`:

Html代码

<p>Login name: <input data-bind="value: userName,valueUpdate: 'afterkeydown'" /></p>
<p>同步显示Login name: <span data-bind="text: userName"></span> </p>
Js代码
var viewModel = {
        userName: ko.observable("")
    };

ko.applyBindings(viewModel);