【问题标题】:Seaside - clear form on re-render?海边 - 重新渲染时清除表格?
【发布时间】:2013-07-10 11:22:50
【问题描述】:

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

【问题讨论】:

    标签: smalltalk seaside


    【解决方案1】:

    这在很大程度上取决于您呈现这些输入的方式。如果你使用 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 的验证机制应该会处理这个问题。您需要做的就是在相应的描述中启用验证。

    【讨论】:

      猜你喜欢
      • 2022-07-23
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      相关资源
      最近更新 更多