有没有办法在重新渲染页面时重置页面的所有文本输入?该页面继续加载前一个渲染中仍然在输入中的文本。
答案 0 :(得分:2)
这在很大程度上取决于您呈现这些输入的方式。如果您使用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的验证机制应该照顾好这一点。您需要做的就是在相应的描述中启用验证。