Javascript jquery获取输入值以检索匹配的数组值以填充隐藏的输入
正在寻找有关用于提取存储在数组中的lat/long值的表单的指导信息。代码示例不完整(抱歉),只是处于粗略阶段Javascript jquery获取输入值以检索匹配的数组值以填充隐藏的输入,javascript,jquery,arrays,forms,extract,Javascript,Jquery,Arrays,Forms,Extract,正在寻找有关用于提取存储在数组中的lat/long值的表单的指导信息。代码示例不完整(抱歉),只是处于粗略阶段 <script type="text/javascript"> $document.ready(function(){ var geoCity = [ { 'Toronto', '43.6532', '-79.3831'}, { 'Vancouver', '49.2612', '-123.1139'}, { 'Calg
<script type="text/javascript">
$document.ready(function(){
var geoCity = [
{ 'Toronto', '43.6532', '-79.3831'},
{ 'Vancouver', '49.2612', '-123.1139'},
{ 'Calgary', '51.04532', '-114.0581'}
];
});
</script>
$document.ready(函数(){
变量地质性=[
{‘多伦多’、‘43.6532’、‘79.3831’},
{‘温哥华’、‘49.2612’、‘123.1139’},
{‘卡尔加里’、‘51.04532’、‘114.0581’}
];
});
当输入city字段时(实际使用bootstrap在实际表单上的typeahead),需要使用输入的值(在提交表单之前)搜索数组,提取匹配的lat/long值,并将其输入各自的隐藏输入字段
<input type="text" id="city" name="city" value="" />
<input type="hidden" id="latitude" name="latitude" value="" />
<input type="hidden" id="longitude" name="longitude" value="" />
希望有人能为我指明正确的方向。您需要更改geoCities对象的结构,如下所述:
$(function () {
var geoCity = [{
'city': 'Toronto',
'location': ['43.6532', '-79.3831']
}, {
'city': 'Vancouver',
'location': ['49.2612', '-123.1139']
}, {
'city': 'Calgary',
'location': ['51.04532', '-114.0581']
}];
$("#city").blur(function () {
$("#latitude").val("");
$("#longitude").val("");
var curCity = $("#city").val();
var location = $.map(geoCity, function (itm) {
if (itm.city === curCity)
return itm.location;
});
if(location) {
$("#latitude").val(location[0]);
$("#longitude").val(location[1]);
}
});
});
JsFiddle:
您可以
$(“#城市”)。最近的(“表单”)。提交
而不是$(“#城市”)。模糊
是的,更改数据结构。然后将输入值与对象键关联
$(function () {
var geoCity = {
'Toronto': {
'lat': '43.6532',
'lon': '-79.3831'
},
'Vancouver': {
'lat': '49.2612',
'lon': '-123.1139'
},
'Calgary': {
'lat': '51.04532',
'lon': '-114.0581'
}
};
$('#button').click(function () {
var lat, lon, city = $('#city').val();
if (city) {
lat = geoCity[city].lat;
lon = geoCity[city].lon;
$('#latitude').val(lat);
$('#longitude').val(lon);
}
});
});
Thx Chandu,如果要引用90多个城市,您会用地理城市数组值更改任何内容吗?Thx Jeffman,我在上面提出的问题相同……如果要引用90多个城市,您会用地理城市数组值更改任何内容吗?不会太多。它们看起来很笨重,因为空间太大,但可以去掉。如果您将键和值放在“双引号”中,那么它将是JSON格式的。这将有助于在PHP或其他服务器环境中创建对象。我已经根据你的答案和Chandu的答案改编了期末考试。使用模糊功能,但如果没有为城市输入,还可以将lat/long设置为空。这是最后一把小提琴-