我使用rails 5.2和mapbox进行地理编码
我尝试通过js传递纬度和经度,但无济于事
我不明白它为什么不起作用的原因
我的代码:
<%= form_for(@place, :remote => true, html: { role: 'form', multiple: true }) do |f| %>
<%= f.hidden_field :longitude %>
<%= f.hidden_field :latitude %>
<div class="margin-top-40">
<div id='map' style='height: 300px;'></div>
<script>
mapboxgl.accessToken = 'accessToken';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v11'
});
var lng;
var lat;
var lngDisplay = document.getElementById('place_longitude');
var latDisplay = document.getElementById('place_latitude');
var marker = new mapboxgl.Marker({
'color': '#314ccd'
});
map.on('click', function(e) {
marker.setLngLat(e.lngLat).addTo(map);
lng = e.lngLat.lng;
lat = e.lngLat.lat;
lngDisplay.textContent = lng;
latDisplay.textContent = lat;
});
</script>
</div>
<div class="form-group">
<%= f.submit 'Save', data: {disable_with: 'Save...'}, class: 'btn btn-s'%>
<%= link_to 'Back', :back, class: 'btn btn-d' %>
</div>
<% end %>
答案 0 :(得分:1)
发现了问题所在
lngDisplay.textContent = lng;
latDisplay.textContent = lat;
需要更改为:
lngDisplay.value = lng;
latDisplay.value = lat;