我需要验证一个简单的JavaFX表单,包含密码和确认密码。
validationSupport.registerValidator(passwordInput,
Validator.createEmptyValidator("Password required!"));
validationSupport.registerValidator(confirmPasswordInput,
new EqualsToValidator(passwordInput.textProperty(),
"Password differs from confirmation"));
在EqualsToValidator中,我只需比较property.getValue()和传递给验证器的value。
如果我只改变密码,仅密码EqualsToValidator不会被调用,因为它正在监听confirmPasswordInput而不是passwordInput。
我只找到了丑陋的解决方案:
passwordInput.textProperty().addListener((observable, oldValue, newValue) -> {
String oldText = confirmPasswordInput.getText();
confirmPasswordInput.setText(null);
confirmPasswordInput.setText(oldText);
});
如何在另一个字段更改时使一个字段失效?