我有:选择两个值 - CHANNELS,WIDGETS。如果我选择第一个,我将显示所有通道的调色板并隐藏小部件调色板(两个都在区域中),如果我选择第二个,我将隐藏通道调色板区域和显示小部件调色板区域。两个调色板都是通过从数据库加载的项目预先选择的。 selectedWidgets,selectedChannels都注释为@Persist。问题是客户想要删除选定的小部件,然后切换到频道并添加它们,这样两个操作。如果他随后保存,则删除的小部件仍然存在,并且正确添加了通道。这有可能解决吗?
答案 0 :(得分:1)
如果我理解正确,您需要在表单提交时保存两个调色板的值。因此,两个调色板都应该出现在表单上。
要解决此问题,您只需隐藏一个调色板,然后在选择值更改时显示另一个调色板。不需要服务器端操作(也不需要区域):
<t:select t:id="select" .../>
<t:palette id="widgets" .../>
<t:palette id="channels" .../>
js使用jquery:
var $select = $('#' + selectId);
var $widgets = $('#' + widgetsId);
var $channels = $('#' + channelsId);
$select.on('change', function() {
if ($select.val() == 1 /* or another value corespondent to channels */) {
$widgets.hide();
$channels.show();
} else {
$widgets.show();
$channels.hide();
}
});
答案 1 :(得分:0)