有没有办法在重新渲染页面时重置页面的所有文本输入?页面继续加载来自先前渲染的文本仍在输入中。
问问题
85 次
1 回答
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 的验证机制应该会处理这个问题。您需要做的就是在相应的描述中启用验证。
于 2013-07-13T08:39:59.197 回答