Я видел много примеров и сделал то же самое, но я не могу установить значение с помощью JavaScript.Почему JavaScript не установлен h: inputHidden value?
Существует мой код
<h:form id="listPlacesForm">
<h:inputHidden id="hiddenMapCenter" value="#{userPlaces.center}" />
</h:form>
и JavaScript
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(findPosition);
} else
error('Geo Location is not supported');
function findPosition(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
alert('Start')
var str = lat + ", " + lng;
var elem = document.getElementById('listPlacesForm:hiddenMapCenter')
alert(str)
elem.value = 'asfsf'
alert('It works!' + str);
}
Все это код работает, за исключением линии: elem.value = 'asfsf'
Я пробовал: elem.value = 'sfd'
, elem.value = "asfd"
, elem.value = str
Любые идеи?
UPDATE 1
Сгенерированный HTML
<form id="mainTabId:listPlacesForm"
name="mainTabId:listPlacesForm" method="post"
action="/DarkComm/app/settings?execution=e3s1" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="mainTabId:listPlacesForm" value="mainTabId:listPlacesForm" />
<input id="mainTabId:listPlacesForm:hiddenMapCenter"
type="hidden"
name="mainTabId:listPlacesForm:hiddenMapCenter" value="" />
<input type="hidden" name="javax.faces.ViewState"
id="javax.faces.ViewState" value="e3s1" />
</form>
Пробовали ли вы просто использовать 'hiddenMapCenter' как идентификатор в 'document.getElementById' вместо' listP lacesForm: hiddenMapCenter'? – Musa
@Musa, Да, я сделал – DarkFeniks
У вас есть несколько элементов с одним и тем же идентификатором? – JJJ