这个很简单。我有一个<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
).
]发布于 2011-02-14 01:57:21
#updater需要要更新的元素的DOM ID。如果您没有提供ID,它将默认为this,即触发事件的DOM元素。因此,你最终得到了一个空的列表。如果您不需要更新某些内容,则应该使用#request而不是#updater。如果您想要更新某些内容,则需要使用#id:提供有效的ID。
请阅读Seaside Book的AJAX: Talking back to the Server一节,它非常详细地解释了AJAX。
发布于 2011-02-14 01:33:07
因为更新程序用回调生成的内容替换了定义它的元素的html,而您的回调不会生成任何html,所以我认为列表是空的。
https://stackoverflow.com/questions/4985262
复制相似问题