zoukankan      html  css  js  c++  java
  • Konckout第二个实例:数组数据类型双向绑定 -- 下拉select

    自定义js做法:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                #content1{padding: 20px;}
            </style>
        </head>
        <body>
            <div id="content1">
                <select id="userNameList">
                </select>
                <b id="selectValue"></b>
            </div>
            
            <script type="text/javascript" src="js/jquery.js"></script>
            <script type="text/javascript" src="js/knockout30.js"></script>
            <script>
                function RenderSelectOptions(datas,selectNode){
                    var optionString = "";
                    for(var i in datas){
                        optionString += "<option value="+datas[i]+">"+datas[i]+"</option>";
                    }
                    selectNode.html(optionString);
                }
                $(function(){
                    var userName = ['党---','兴---','明---'];
                    var userNameList = $('#userNameList');
                    
                    RenderSelectOptions(userName,userNameList);
                    
                    $('#userNameList').change(function(){
                        var selectValue = $('#selectValue');
                        selectValue.html(userNameList.val());
                    });
                });
            </script>
        </body>
    </html>

    knockout方法

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                #content1{padding: 20px;}
            </style>
        </head>
        <body>
            <div id="content1">
                <select id="userNameList" data-bind="options:userNames,selectedOptions:selectedUserName">
                </select>
                <b id="selectValue" data-bind="html:selectedUserName"></b>
            </div>
            
            <script src="js/jquery.js"></script>
            <script src="js/knockout30.js"></script>
            <script>
                $(function(){
                    var ViewModel = function(){
                        var self = this;
                        self.userNames = ko.observable(['aaa','bbb','ccc']);
                        self.selectedUserName = ko.observable("");
                    }
                    var currentViewModel = new ViewModel();
                    ko.applyBindings(currentViewModel);
                });
            </script>
        </body>
    </html>

     但:这样option上value和显示的文本都是数组里的值,当需要两个不一样时,该肿么办呢:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title></title>
            <style>
                #content1{padding: 20px;}
            </style>
        </head>
        <body>
            <div id="content1">
                <select id="userNameList" data-bind="options:userNames,optionsText:'Key',optionsValue:'Value',selectedOptions:selectedUserName">
                </select>
                <b id="selectValue" data-bind="html:selectedUserName"></b>
            </div>
            
            <script src="js/jquery.js"></script>
            <script src="js/knockout30.js"></script>
            <script>
                $(function(){
                    var ViewModel = function(){
                        var self = this;
                        //self.userNames = ko.observable(['aaa','bbb','ccc']);
                        self.userNames = ko.observable([{Key:'tom',Value:'1'},{Key:'jerry',Value:'2'},{Key:'dang',Value:'3'}]);
                        self.selectedUserName = ko.observable();
                    }
                    var currentViewModel = new ViewModel();
                    ko.applyBindings(currentViewModel);
                });
            </script>
        </body>
    </html>
  • 相关阅读:
    有些事情,我们需要坚持到底
    SEO策略与细节:细节决定成败
    织梦DEDECMS更新6月7日补丁后出现版权链接的删除办法
    argparse模块的应用
    多态实现原理剖析
    tensorflow中tf.ConfigProto()用法解释
    tensor flow中summary用法总结
    tensorflow-gpu版本出现libcublas.so.8.0:cannot open shared object file
    python3自带工具2to3.py用法
    公司管理系统之设计
  • 原文地址:https://www.cnblogs.com/by-dxm/p/6738798.html
Copyright © 2011-2022 走看看