我有两个字段:用于密码和确认,并希望通过一些常见的验证器检查它们的相等性。 我怎样才能使它更有效?
private val model = object : ViewModel() {
val password = bind { SimpleStringProperty() }
val confirmPsw = bind { SimpleStringProperty() }
}
override val root = form {
fieldset("Admin") {
field("Set password and confirmation") {
val tf1 = textfield(model.password) {
promptText = "Place password"
requestFocus()
}.required()
val pf1 = passwordfield(model.confirmPsw){
promptText = "confirm password"
}.required()
button("set") {
enableWhen { model.valid }
}
}
}
}
答案 0 :(得分:0)
我用它做了什么(在大量的香烟和咖啡之后):
首先我们制作输入和检查密码的模型。
private val model = object : ViewModel() {
val password = bind { SimpleStringProperty() }
val confirm = bind { SimpleStringProperty() }
// This makes boolean binding for control equality.
val equal = booleanBinding(confirm, password) {
confirm.value == password.value && confirm.value.isNotEmpty()
}
}
然后我们可以将它用于按钮启用。
button("OK") {
enableWhen { model.equal }
}
不确定这是最好的方式,但它确实有效。有没有更好的办法? (顺便说一句,我们也可以把它放在'片段中)