C jsf я мало знаком и не могу понять один момент. Мне необходимо динамически изменять select-поле. На странице есть один селект, который генерируется из БД. Ещё один селект создаётся вручную. Нужно прикрутить js-функцию, которая будет генерировать селект, исходя из других двух.
Примерный код:
<h:selectOneMenu id="id1" value="#{controller1.selected.name}">
<f:selectItems value="#{controller2.itemsAvailableSelectOne}"/>
<f:ajax event="change" onevent="foo"/>
</h:selectOneMenu>
...
<select id="id2" onChange="foo">
<option>1</option>
...
<option>10</option>
</select>
<select id="target">
</select>
<script>
function foo() {
var val1 = #{controller2.select.field1};
var val2 = #{controller2.select.field2};
var val3 = $('id2').value;
var html1 = "<option>" + val1 + val3 + "</option>";
var html2 = "<option>" + val2 + val3 + "</option>";
$('#target').html(html1 + html2);
}
</script>
Но, так как при загрузке страницы по-умолчанию в первом селекте не выбрано ничего, то первая строчка js-функции будет неправильной, и функция не создастся. Как это решить?