我会尝试回答您的备选问题。您可以创建一对元素 - 单选按钮输入和标签 - 并根据需要附加到DOM。要创建,“男性”和“女性”按钮,你可以这样做:
var button1 = new RadioButtonInputElement();
button1.name = "sex";
button1.value = "male";
button1.attributes['id'] = "sex_male";
var button1_label = new LabelElement();
button1_label.attributes['for'] = button1.id;
button1_label.text="Male";
var button2 = new RadioButtonInputElement();
button2.name = "sex";
button2.value = "female";
button2.attributes['id'] = "sex_female";
var button2_label = new LabelElement();
button2_label.attributes['for'] = button2.id;
button2_label.text="Female";
使用new RadioButtonInputElement()
创建一个无线输入;使用new LabelElement()
创建伴随的标签。
此代码不是特别干;如果你要生成很多这些,你可能需要将它重构成一个函数。事情是这样的:
List createButtonWithLabel(name, value) {
var button = new RadioButtonInputElement();
button.name = name;
button.value = value;
button.attributes['id'] = "${name}_${value}";
var label = new LabelElement();
label.attributes['for'] = button.id;
label.text=value.toUpperCase();
return [button, label];
}
,然后用它是这样的:
var form = new FormElement();
form.nodes.addAll(createButtonWithLabel('sex', 'male'));
form.nodes.addAll(createButtonWithLabel('sex', 'female'));
query('body').nodes.add(form);
这应该给你一个表格2个单选按钮。
谢谢你的回答。我遵循,并可以看到它会起作用。但是,目标是使用web_ui来完成此操作,以避免在代码中生成元素(这很单调乏味,而且还存在维护问题)。 –