这个很简单。我有一个<select>
,我想根据选择更新一些内部状态。无需重新显示任何内容。问题是在选择和AJAX请求完成后,列表会丢失其内容。
renderContentOn: html
|value myId|
html form with: [
html select list: #('one' 'two' 'tree' 'four' 'five');
id: (myId := html nextId);
callback: [ :v | value := myId ];
onChange: (
html prototype updater
triggerFormElement: myId;
callback: [:h | value "do something with the value here"];
return: false
).
]
答案 0 :(得分:3)
#updater
需要要更新的元素的DOM ID。如果您未能提供ID,则默认为this
,DOM元素触发事件。因此,您最终得到一个空列表。如果您不需要更新内容,则应使用#request
代替#updater
。如果您想更新某些内容,则需要使用#id:
提供有效ID。
阅读Seaside Book的AJAX: Talking back to the Server部分,它详细解释了AJAX。
答案 1 :(得分:1)
因为更新程序用回调生成的内容替换了它所定义的元素的html,并且你的回调没有生成任何html,我认为列表是空的。