【问题标题】:Read textbox value from javascript/jquery从 javascript/jquery 读取文本框值
【发布时间】: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 为 &lt;%=TextBox1.ClientID%&gt; 的元素。你确定页面上的 ID 是这样的吗?
  • 嗨,是的,该元素可用。在将文本框从 TextBox1 重命名为 txtMarkers 之前,我已经保存了错误消息,因此只是复制了与更改文本框名称之前相同的错误消息。 ..我已经在上面更新了它....当我使用文档就绪功能时,我收到此错误:0x800a1391 - JavaScript 运行时错误:'initialize' 未定义(在我的正文标记中初始化: ?

标签: javascript jquery asp.net


【解决方案1】:

您可能会得到 null 或 undefined 值,因为在加载 DOM 元素之前,您的客户端脚本会询问该元素的值。

Here's a similar scenario

演示应用:

MyForm.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyForm.aspx.cs" Inherits="_24733063.MyForm" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script src="Scripts/jquery-1.10.2.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                alert($("#dataTextBox").val());
            });
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:TextBox ID="dataTextBox" runat="server" />
            </div>
        </form>
    </body>
</html>

MyForm.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    dataTextBox.Text = "some text values";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    相关资源
    最近更新 更多