为什么我的坐标以字符串形式返回?

时间:2018-07-27 17:20:36

标签: javascript html mongodb leaflet geojson

下面是从传单地图返回坐标的架构。

 //Schema
 name: {
 type: String,
 required: true,
 trim: true
 },
 properties:{

 },
 coordinates: [Number]
,
email: {
type: String,
unique: true,
required: true,
trim: true
},

这是用于将点击后的坐标返回到我们的表单的代码。但是它不是以数字形式返回,而是以字符串形式返回。我们如何才能使输入成为表单中的数字?我们尝试了几件事,但没有任何效果。

map.on('click', onMapClick);
  L.control.layers(baseLayers, overlays).addTo(map);
  map.on('popupopen', function (e) {
    var latLng = e["popup"]._latlng;
    var form = document.querySelector('#popupForm');
    form['coordinates'].value = latLng['lat'] + ', ' + latLng['lng'];

1 个答案:

答案 0 :(得分:0)

将输入类型转换为数字。您可以将两个不同的输入类型用作纬度和经度的数字。然后抓取lat和lng并在输入中设置值。

HTML表单

<form id="popup-form" method='POST' action='/spotForm'> 
        <div class='form-group'>
            <label for='spotName'>Name</label>
            <input type='number'class='form-control' name='lat' placeholder='Latitude'>
            <input type='number'class='form-control' name='lng' placeholder='Longitude'>
        </div>
        <button type='submit' class='btn btn-primary'>Add Spot Data</button>
</form>

JavaScript

map.on('popupopen', function (e) {
    var latLng = e["popup"]._latlng;
        var form = document.querySelector('#popup-form')
        form['lat'].value = latLng['lat'];
        form['lng'].value = latLng['lng'];
});

希望这对您有帮助!