【发布时间】:2014-07-14 17:46:04
【问题描述】:
我创建了一个带有气泡作为标记的谷歌地图。我在后面的代码中创建了一个数组,并使用这些值设置了一个文本框。文本框填充了正确的值,但我无法从 jquery/javascript 中读取值...
使用这些语句时:
var markers = $('#txtMarkers').val();
var markers = document.getElementById('<%=txtMarkers.ClientID%>')
我收到此错误消息:
0x800a138f - JavaScript runtime error: Unable to get property '0' of undefined or null reference
当我使用这个时:
var markers = document.getElementById('<%=txtMarkers.ClientID%>').value;
我收到此错误消息:
0x800a138f - JavaScript runtime error: Unable to get property 'value' of undefined or null reference
但是,文本框正在被填充。这是文本框中填充的内容(添加手动值以查看文本框中填充的内容):
[{"title":"DRIVER","lat":"25.9820333333333","lng":"28.1289333333333","description":"0.6608917"},
{"title":"DRIVER","lat":"-25.982","lng":"28.1289333333333","description":"0.6643902"},
...more values}]
手动添加这些值会加载地图和标记,但它似乎不会从文本框中读取值。我做错了吗?
更多信息
当我把 $(document).ready(function () {});在页面上我得到一个错误
0x800a1391 - JavaScript runtime error: 'initialize' is undefined
于是我把body标签中的onload="initialize()"去掉了,导致出现这个错误:
0x800a138f - JavaScript runtime error: Unable to get property 'lat' of undefined or null reference
在这段代码中,因为没有信息作为方法必须在加载之前运行(来自 db 的信息):
var mapOptions = {
center: new google.maps.LatLng(markers[0].lat, markers[0].lng),
zoom: 8,
mapTypeControl: true,
panControl: true,
zoomControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
【问题讨论】:
-
$('#txtMarkers')页面中有这个元素吗? -
尝试将您的 jQuery 代码放入 $(document).ready(function(){});功能。
-
'' - 那是什么奇怪的“东西”?至少看起来中间有额外的
'。如错误消息中所述,页面中也没有 ID 为<%=TextBox1.ClientID%>的元素。你确定页面上的 ID 是这样的吗? -
嗨,是的,该元素可用。在将文本框从 TextBox1 重命名为 txtMarkers 之前,我已经保存了错误消息,因此只是复制了与更改文本框名称之前相同的错误消息。 ..我已经在上面更新了它....当我使用文档就绪功能时,我收到此错误:0x800a1391 - JavaScript 运行时错误:'initialize' 未定义(在我的正文标记中初始化: ?
标签: javascript jquery asp.net