【发布时间】:2013-07-10 11:22:50
【问题描述】:
有没有办法在重新呈现页面时重置页面的所有文本输入?页面继续加载,之前渲染的文本仍在输入中。
【问题讨论】:
有没有办法在重新呈现页面时重置页面的所有文本输入?页面继续加载,之前渲染的文本仍在输入中。
【问题讨论】:
这在很大程度上取决于您呈现这些输入的方式。如果你使用 Seaside 组件,那么你可以在回调中实现你自己的逻辑:
html textInput
callback: [ :value | self setOrResetMyInputWith: value ]
with: 'my input'.
#setOrResetMyInputWith: 可能看起来像这样:
setOrResetMyInputWith: aString
myInputValue := self allCriteriaMet
ifTrue: [ aString ]
ifFalse: [ nil ]
请记住,您无法预测评估回调的顺序。因此,在渲染之前进行检查可能会更容易:
renderContentOn: html
self checkMyInputs.
"continue rendering process"
...
如果条件不满足,您可以简单地重置实例变量。
这是针对组件的。如果您使用 Magritte,那么 Magritte 的验证机制应该会处理这个问题。您需要做的就是在相应的描述中启用验证。
【讨论】: