如何强制用户从 qooxdoo SelectBox 中进行选择?我希望 SelectBox 最初显示为空选择(或者更好的是,“请选择...”消息)。如果用户没有做出选择,我希望表单验证失败,并且 selectBox 出现红色“无效”装饰和“必需”工具提示,就像必需的文本字段一样。
RadioButtonGroup 也是如此:有没有办法让该组最初出现时没有选择按钮,并且在做出选择之前无效?
后来......这似乎适用于 SelectBox 案例:
var genderSlct = new qx.ui.form.SelectBox();
genderSlct.add(new qx.ui.form.ListItem("")); // initially selected null item
genderSlct.add(new qx.ui.form.ListItem("Male", null, "M"));
genderSlct.add(new qx.ui.form.ListItem("Female", null, "F"));
...
myForm.getValidationManager().setValidator(function(items) {
var valid = true;
if (genderSlct.getSelection()[0].getModel() == null) {
genderSlct.setValid(valid = false);
genderSlct.setInvalidMessage("Please select your gender.");
}
...
if (valid) {
genderSlct.setValid(true);
...
return true;
} else {
return false;
}
});
后来还是......找到了 RadioButtonGroup 的解决方案:
要获得初始未选中状态,请添加一个不可见的第一个 listItem 与 null 模型:
myRbg.add(new qx.ui.form.RadioButton("").set({
model: null, visibility: "excluded"
}));
然后将与 selectionBox 相同样式的代码添加到表单验证器。