0

在查看文档几个小时后,我有些绝望:基本上我需要用一些 TextBoxes 和一些 Checkboxes 填充 TabContainer。所有这些都整齐排列:左侧的标签,右侧的字段。
为此,我使用添加到 TabContainer 的 TableContainer,创建 TextField 并将它们添加到 TableContainer。一切正常。但是当涉及到一个复选框时,我根本找不到显示标签的技巧。如果我: - 在创建语句中添加标签属性说:
var text8 = new dijit.form.CheckBox({
id:"zuschauer_" + i, value: "zuschauer", label:"fritt"});
Firefox 出现“containerNode 为空” - 错误

  • 尝试添加标签:没有显示(没有错误,但唉:没有标签):
    var text9 = dojo.create('<label>');
    dojo.attr(text9,"for","zuschauer_" + i);
    dojo.attr(text9,"内容","fritt");

  • 尝试在 tablecontainer(禁用标签)上添加 div 或其他内容:Firefox 出现:错误:未捕获的异常:[Exception...“组件返回失败代码:0x80004003(NS_ERROR_INVALID_POINTER)[nsIDOMHTMLDivElement.appendChild]”nsresult:“ 0x80004003 (NS_ERROR_INVALID_POINTER)”位置:“JS 框架 :: ...

  • 创建的TextNodes也是如此...

那么如何破解:
- 我是否会以编程方式为复选框生成标签(没有 html 模板可能,我已经看过代码,创建了一个复选框,但之前在 html 上有一个“标签”。这没有帮助,因为我不知道在设计时我需要多少个复选框。这些将在运行时完全生成。-
我是否可以以编程方式完成这个非常简单的设计,必须很容易,这不是火箭科学。我真的需要TableContainer做这件事?

  • 我可以在 TableContainer 中创建静态文本吗?
4

2 回答 2

2

我建议创建一个 HTML 字符串,然后将其设置为 ContentPane 的内容。如果您需要以编程方式构建表单,您可以制作自己的小部件,扩展 ContentPane 并在获取数据时获取数据,并生成正确的 innerHTML。这最终会比试图从现有的小部件中拼凑起来更简单。

于 2010-06-15T13:21:30.620 回答
2

在这种情况下,您可能希望在匿名 LABEL (HTML) 标记内使用输入/小部件。您可以将文本放在输入/小部件之前或之后,并可能使用样式/目录属性定位它。这将提供更大的灵活性,因为您在解析时不需要 ID。只需创建一个标签标签并放入您的表单小部件。它是纯 HTML,应该从 HTML 4.01 开始支持。

http://www.w3.org/TR/html401/interact/forms.html#h-17.9

另请参阅: 使复选框和单选标签可点击

于 2011-02-28T22:14:23.267 回答