Идентификатор элемента должен быть идентификатором сгенерированного идентификатора элемента HTML, а не идентификатором компонента JSF. В JavaScript совершенно отсутствует представление о JSF-коде на стороне сервера. Все, что он может видеть и получать к нему доступ - это просто дерево HTML DOM, сгенерированное JSF. Откройте страницу в браузере, щелкните ее правой кнопкой мыши и выберите Просмотр источника . Сгенерированный HTML-код <h:selectOneMenu id="placeSelectOneMenu">
должен выглядеть следующим образом
<select id="someFormId:placeSelectOneMenu">
(где someFormId
- идентификатор родителя <h:form>
)
В этом случае вам нужно получить его следующим образом
document.getElementById('someFormId:placeSelectOneMenu')
Но поскольку изменение элементов ввода HTML на стороне клиента без уведомления JSF на стороне сервера может привести к неожиданным действиям (если вы включите его на стороне клиента с помощью чистого JS, то он не будет волшебным образом включен на на стороне сервера, и JSF не будет обрабатывать переданное значение поля, которое было изначально отключено), и что вы используете RichFaces, я бы предложил использовать чисто JSF-подход, например, с RichFaces 3.x <a4j:support>
тег.