需要使用Knockout.js在组合框中保留动态创建的选项
Need to retain dynamically created option in combo box using Knockout.js
我有一个代码集,它可以在选择框中动态创建一个"选项"。但是,由于我们使用Knockout,当我选择新创建的选项并单击它时,它会被删除,例如DISAPPARS!呜呜!!!!
所以,下面是创建脚本:
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;
};
由于这是一个可以观察到的KNOCKOUT,所以当我选择它时,如何将它保留在框中,此外,我如何将新值发送回JSON对象。这里有一个例子:
{"组":[
{
"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');" }
}
]
}
好吧,我暂时停止写作。。。谢谢
如果你正在使用knockout(我实际上看不到),你所需要做的就是将你的选择框绑定到一个可观察的数组,当你需要添加一个新项目时,只需将其推到数组上,knockout就会为你将其添加到列表中。
Knockout本质上应该用更少、更简单的代码来替换您包含的脚本。
相关文章:
- 如何在页面刷新后保留动态创建的html元素及其数据/值
- 使用 struts 标签和 Javascript 的动态行为保留表单中的值
- 使用 Reactjs 保留对动态子引用的引用
- 如何添加动态表单元素但保留其值(JS)
- 保留动态创建的下拉列表's在事件窗口.history.back()上选择的值-JavaScript
- 在Postback上保留动态内容
- jQuery如何在页面重载时保留动态创建列表的选定选项
- 如何在java中保留插入顺序,恒定时间检索和动态调整大小
- 使用 javascript 动态更改文本时保留 CSS
- 如何在不使用 CSS 的情况下在动态添加的 javascript DOM 元素中保留空格
- 动态更改Twitter启动按钮上的文本,同时保留图标
- 如何在动态创建表后保留下拉选择-Jquery
- JavaScript-如何在选择框(动态生成的选择框)中保留上次提交的值
- Jquery工具提示将在DataTable内容动态更改后保留
- 为动态更改的元素保留事件
- jQuery Chosen动态更新,保留现有选择
- 需要使用Knockout.js在组合框中保留动态创建的选项
- 如何在动态生成的下拉框中将选定的值保留到下一个jsp页面
- 最好保留大量的HTML或动态创建
- 刷新后通过jquery保留动态生成的输入字段