Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要使用Knockout.js在组合框中保留动态创建的选项_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript 需要使用Knockout.js在组合框中保留动态创建的选项

Javascript 需要使用Knockout.js在组合框中保留动态创建的选项,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有一个在选择框中动态创建“选项”的代码集。但是,由于我们使用的是淘汰,当我选择新创建的选项并单击它时,它会被删除,例如消失!噗 下面是创建脚本: function createNewGroup() { var htmlSelect = document.getElementById('groups'); var optionValue = document.getElementById('newgroupname'); if

我有一个在选择框中动态创建“选项”的代码集。但是,由于我们使用的是淘汰,当我选择新创建的选项并单击它时,它会被删除,例如消失!噗

下面是创建脚本:

    function createNewGroup()
    {

        var htmlSelect = document.getElementById('groups');
        var optionValue = document.getElementById('newgroupname');

        if (optionValue.value === '')
        {
            alert('Please enter group name.');
            optionValue.focus();
            return false;
        }

        if (isOptionAlreadyExist(htmlSelect, optionValue.value))
        {
            optionValue.value = "";
            alert('Group name already exists.\n\nPlease try again.');
            optionValue.focus();
            return false;
        }

        var selectBoxOption = document.createElement("option");
        selectBoxOption.value = optionValue.value;
        selectBoxOption.text = optionValue.value;
        htmlSelect.add(selectBoxOption, null);

        optionValue.value = "";
        alert("New group has been added successfully.");
        optionValue.focus();
        return true;

    };
因为这是一个淘汰的可观察对象,所以当我选择它时,如何将它保存在框中,此外,如何将新值发送回JSON对象。下面是一个例子:

{“集团”:[

}

因此,管理员用户可以创建一个新用户,使其看起来像这样:

{“集团”:[

“用户”:[

}

好的,我现在就不写了…谢谢…

如果你正在使用knockout(我实际上看不到),你需要做的就是将你的选择框绑定到一个可观察的数组,当你需要添加一个新项目时,只需将它推到数组上,knockout就会为你将它添加到列表中


敲除应该基本上用更少、更简单的代码替换您包含的脚本。

敲除在哪里?好的,是的,你是对的……现在,我对KO非常了解。这是我的绑定选择框:角色/组:
    {
        "groupname" : "Administrator",
        "attr" : {  "id" : "li.attr.node_1",
                    "href" : "#", 
                    "data-bind" : "click: grpMgmt('Administrator');" }
    },
    {
        "groupname" : "Guest",
        "attr" : {  "id" : "li.attr.node_2",
                    "href" : "#", 
                    "data-bind" : "click: grpMgmt('Guest');"  }
    }
]
    {
        "groupname" : "Administrator",
        "attr" : {  "id" : "li.attr.node_1",
                    "href" : "#", 
                    "data-bind" : "click: grpMgmt('Administrator');" }
    },
    {
        "groupname" : "Guest",
        "attr" : {  "id" : "li.attr.node_2",
                    "href" : "#", 
                    "data-bind" : "click: grpMgmt('Guest');"  }
    }
],
    {
        "groupname" : "Joes Users",
        "attr" : {  "id" : "li.attr.node_1",
                    "href" : "#", 
                    "data-bind" : "click: grpMgmt('Joe');" }
    }
]