2012-05-10 147 views
1

如何强制用户从qooxdoo SelectBox中进行选择?我希望SelectBox最初出现时有一个空的选择(或者更好的是,“请选择...”消息)。我希望表单验证失败,如果用户没有做出选择,并且选择框显示为红色“无效”装饰和“必需”工具提示,就像所需的textField一样。如何制作qooxdoo中所需的SelectBox?

类似于RadioButtonGroup:有没有办法让组最初出现时没有选择按钮,并且在选择之前不会变得有效?


后来......这似乎为选择框的情况下工作:

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" 
})); 

然后添加相同的样式的代码作为选择框到表单验证器。

回答