我们是否可以使用谷歌闭包创建一个带有复选框和组合框的对话框
Can we create a dialog box with a checkbox and a combobox using google closure
我正在尝试创建一个对话框,其中包含复选框,用户名和角色组合框,只有在选中复选框时才会启用。我有在 jsp 页面上运行的基本代码,但如何让它在对话框中工作?所有组件都使用谷歌闭包呈现。
我的 js 文件
function combox ()
{
goog.events.listen((goog.dom.getElement('switch')), goog.events.EventType.CLICK,
function(e) {
var request = new goog.net.XhrIo();
var cb = new Array();
goog.events.listen(request, "complete", function(e){
var xhr = /** @type {goog.net.XhrIo} */ (e.target);
res = xhr.getResponseJson();
var mycount = count(res.myrole);
var content = new Array();
var userlist = new Array();
for(var k=0;k<mycount;k++)
{
content[k] = res.myrole[k].role;
}
var mycount1 = count(res.myusers);
for(var l=0;l<mycount;l++)
{
userlist[l] = res.myusers[l].user;
}
var child = new Array();
var container = goog.dom.getElement('c');
for(var m=0;m<userlist.length;m++)
{
child[m] = goog.dom.createDom('div',{'id':'user'+(m+1)},userlist[m]);
cb[m] = new goog.ui.ComboBox();
cb[m].setUseDropdownArrow(true);
for(var n=0;n<content.length;n++)
{
cb[m].addItem(new goog.ui.ComboBoxItem(content[n]));;
}
cb[m].render();
goog.dom.append(container, child[m]);
});
});
}
function count(obj) {
var count=0;
for(var user in obj) {
if (obj.hasOwnProperty(user)) {
++count;
}
}
return count;
}
我从我的 servlet 中得到了正确的响应,但我希望在一个对话框中使用这些组件(即从我的 servlet 检索到的每个用户的复选框、用户名和一个组合框。
你应该考虑使用 goog.ui.Dialog - http://docs.closure-library.googlecode.com/git/class_goog_ui_Dialog.html
这是如何使用一个的演示: http://closure-library.googlecode.com/git/closure/goog/demos/dialog.html
实例化一个后,您将使用 setContent
方法将表单放置为对话框的内容 html。
您还可以扩展 goog.ui.editor.AbstractDialog 类 ( http://docs.closure-library.googlecode.com/git/class_goog_ui_editor_AbstractDialog.html ),它有助于管理对 goog.ui.Dialog 的内部引用,而不是直接创建一个,并提供方便的hide
和show
方法。
__
作为旁注,它通常被视为Javascript中的反模式,使用"new Array()
"语法而不是var userList = [];
,原因在这里和其他地方指定。
相关文章:
- 复选框:一次只允许单击一个复选框
- jquery从2个json字符串构建一个复选框表单
- 聚合物铁形式验证至少选中一个复选框
- 我有多个复选框,并希望为其中 2 个制定规则,以便如果我选择 1 个,则无法选择另一个
- 如何从多个复选框中获取最后一个值
- 选中复选框的Jquery/Javascript问题使用输入框操作将行从一个表添加到另一个表
- 在单击一个或多个复选框的同时调用iframe
- 如何创建只允许用户在选中前一个复选框的情况下选择复选框的复选框验证
- 复选框一次选中一个不在gridview中工作
- 如果选中了以下复选框,请选中上一个复选框
- 复选框一次选中一个不起作用
- 如何创建一个新的<李>带有复选框或<a>在里面
- 在一组复选框中,一次只允许选择一个
- 如何通过jQuery选中所有复选框并在单击一个复选框时取消选择
- 如何发现至少有一个复选框被选中或没有使用javascript
- 在mvc4中选择另一个复选框时禁用复选框
- 导航到另一个页面后,复选框状态会更改
- Javascript选中一个表中的所有复选框,该表的行具有样式显示标记
- 在服务器上创建一个复选框,使用 javascript 处理函数
- 选择一个从 mysql 返回选中/未选中复选框的对象