visible, disable, css绑定

这个例子非常简单,主要演示如何通过属性控制html元素的显示与否(visible),可用性(disable)以及根据属性添加相应的CSS样式。

先简单的看一段代码:

<p>
    <input id="isvip" type='checkbox' data-bind="checked: isVip" />
    <label for="isvip">
        是否是会员
    </label>
</p>
<p>
    你的用户名是:
    <input type='text' data-bind="value: username, enable: isVip,css: {account: username().indexOf('G')>-1}"
    />
    <span data-bind="visible: isVip">
        尊贵的会员欢迎你访问!
    </span>
</p>

这段代码几乎不需要解释,非常的简单易懂,就是控制input元素的可用性,根据其中的文本添加样式,和控制隐藏元素的显示。

完整代码如下:

<!DOCTYPE html>
<html>
    
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>
            Test
        </title>
        <script src="~/Scripts/jquery-2.0.3.js">
        </script>
        <script src="~/Scripts/knockout-2.3.0.js">
        </script>
        <style type="text/css">
            .account { border-bottom-color:#0094ff; background-color:#b6ff00; border-bottom-width:2px;
            }
        </style>
    </head>
    
    <body>
        <p>
            <input id="isvip" type='checkbox' data-bind="checked: isVip" />
            <label for="isvip">
                是否是会员
            </label>
        </p>
        <p>
            你的用户名是:
            <input type='text' data-bind="value: username, enable: isVip,css: {account: username().indexOf('G')>-1}"
            />
            <span data-bind="visible: isVip">
                尊贵的会员欢迎你访问!
            </span>
        </p>
        <script type="text/javascript">
            function ViewModel() {
                var self = this;
                self.isVip = ko.observable(false);
                self.username = ko.observable("halower@@");
            }
            $(function() {
                ko.applyBindings(new ViewModel());
            });
        </script>
    </body>

</html>

运行效果