2

有没有办法在重新渲染页面时重置页面的所有文本输入?页面继续加载来自先前渲染的文本仍在输入中。

4

1 回答 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 回答