JQueryを使用して要素を(前後に)移動する2つのリストボックスを選択します。これが私のJQueryコードです。
<script type="text/javascript">
$(document).ready(function() {
alert('inside function');
$('#testForm\\:button_add').click(function(e) {
var selectedOpts = $("#testForm\\:select_from option:selected");
if (selectedOpts.length == 0) {
alert("Nothing to move.");
e.preventDefault();
}
$('#testForm\\:select_to').append($(selectedOpts).clone());
$(selectedOpts).remove();
e.preventDefault();
});
$('#testForm\\:button_remove').click(function(e) {
var selectedOpts = $("#testForm\\:select_to option:selected");
if (selectedOpts.length == 0) {
alert("Nothing to move.");
e.preventDefault();
}
$('#testForm\\:select_from').append($(selectedOpts).clone());
$(selectedOpts).remove();
e.preventDefault();
});
});
</script>
そして、これが私のJSFコードに従います。
<td width="40%">
<h:selectManyListbox value="#{testListBox.selectManyOptions}" id="select_from" size="5" >
<f:selectItems value="#{testListBox.selectedOptions}" />
</h:selectManyListbox>
</td>
<td></td>
<td width="40%">
<h:commandButton value="To" id="button_add"/><br/>
<h:commandButton value="From" id="button_remove"/>
</td>
<td></td>
<td>
<h:selectManyListbox id="select_to" size="5"
value="#{testListBox.selectedItems}">
<f:selectItems />
</h:selectManyListbox>
</td>
<td></td>
そして、ページBeanで、対応するバインディング変数をそれぞれのゲッター/セッターで以下のように宣言しました。
private Map<String, Object> selectedOptions;
private Map<String, Object> selectManyOptions;
private List<SelectItem> selectItems = new ArrayList<SelectItem>();
private List<String> selectedItems;
私のページを送信しているときに、エラーが発生しました。「ターゲットモデルタイプはコレクションまたは配列ではありません」ナビゲーションをブロックしているため、誰かが提案できますか?-Vamsi