對於文本字段,我可以檢查用戶輸入多少個字符,例如 -驗證器在窗體的組合框與先進的佈局
Field f;
...
f.addValidator(new StringLengthValidator("WARNING MESSAGE HERE", 6, 20, false));
...
如果數量不在範圍內,則發出警告。 對於數字字段,我可以檢查的類型,例如 -
...
f.addValidator(new Validator() {
public boolean isValid(Object value) {
try {
float f = Float.parseFloat((String) value);
return true;
} catch (Exception e) {
f.getWindow().showNotification("WARNING MESSAGE HERE");
f.setValue(0);
return false;
}
}
public void validate(Object value)
throws InvalidValueException {
}
});
...
如果我需要一個СomboBox?我指出 -
final ComboBox mode = new ComboBox("...");
...
if("someProperty".equals(propertyId)) {
f = mode;
}
...
f.setRequired(true);
f.setRequiredError("WARNING MESSAGE HERE");
...
留空它,沒有警告,有一個提交表單併發送到服務器。需要組合框什麼驗證?
原則,夠本 - '... 對象ID = mode.addItem( 「某些價值」); ... mode.setValue(ID); mode.setNullSelectionAllowed(false); mode.setNewItemsAllowed(false); ...' 但它無法正常工作。 它似乎是做這個檢查的形式。 –
爲了把事情說清楚:價值變動之後你的組合框未通過驗證,而不是提交後? – nexus
感謝您的回覆,nexus!恩,那就對了。如果在更改後立即檢查ComboBox,那將會很好。據我所知,我需要寫聽衆。作爲備選。 –