2012-07-31 66 views
0

我正在開發一個移動搜索,它使用您的位置來確定一個郵政編碼服務器端,但是當試圖設置兩個標籤發送到服務器的經緯度時,我收到一個錯誤,聲稱innerHtml爲空。進一步檢查後,該元素爲空。爲什麼會這樣呢?innerHtml與ASP.NET和JQuery Mobile

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Search.Default" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
<script language="javascript" type="text/javascript"> 
    navigator.geolocation.getCurrentPosition(foundLocation, noLocation); 
    var latitude; 
    var longitude; 
    function foundLocation(position) { 
     latitude = position.coords.latitude; 
     longitude = position.coords.longitude; 
     alert('Your location: ' + latitude + ', ' + longitude); 
    } 
    function noLocation() { 
     //Do something here in the case that no location is found, or user denies access 
    } 
    function getLocation() { 
     document.getElementById("ct100_ContentPlaceHolder1_lblLat").innerHtml = latitude; 
     document.getElementById("ct100_ContentPlaceHolder1_lblLong").innerHtml = longitude; 
    } 
</script> 
<div data-role="page"> 
    <div data-role="header"> 
     <h1>Provider Search</h1> 
    </div> 
    <div data-role="content"> 
     <asp:Button ID="btnSearch" Text="Search" runat="server" data-role="button" OnClientClick="getLocation()" OnClick="btnSearch_Clicked"></asp:Button> 
     <asp:Label ID="lblLat" runat="server"></asp:Label> 
     <asp:Label ID="lblLong" runat="server"></asp:Label> 
     <p></p> 

    </div> 

</div> 

</asp:Content> 

我想說明的是,除了設置標籤外,本文檔中的所有內容都工作正常。

另外,ID前綴ct100_ContentPlaceHolder1_由asp.net在運行時生成,可以通過在調試時查看頁面源來確認。

任何幫助?

+0

有語法錯誤在你的代碼中,'innnerHtml','knnerHtml'。你應該改正它們 - >'innerHTML' – ocanal 2012-07-31 13:25:39

+0

這是複製粘貼?因爲'document.getElementById(「ct100_ContentPlaceHolder1_lblLong」).knnerHtml = longitude;'應該是'document.getElementById(「ct100_ContentPlaceHolder1_lblLong」)。innerHtml = longitude;' – Steve 2012-07-31 13:26:54

+0

對不起,修正了它,我複製了,但是改變了朋友的建議.html與.innerHtml。 – 2012-07-31 14:57:35

回答

2

在你的getLocation()函數,你能嘗試做以下:

function getLocation() { 
    $('#<%=lblLat.ClientID%>').html(latitude); 
    $('#<%=lblLong.ClientID%>').html(latitude); 
} 

你也可以嘗試設置兩個標籤的文本屬性以類似的方式:

function getLocation() { 
    $('#<%=lblLat.ClientID%>').text(latitude); 
    $('#<%=lblLong.ClientID%>').text(latitude); 
} 
+0

OK,$('#<%= lblLat.ClientID%>')。text運行,但現在當我嘗試在服務器端獲取lblLat/lblLong.Text時,它返回一個空字符串,有什麼想法? – 2012-07-31 13:45:44

+0

它看起來像你可能還需要設置一個隱藏的輸入字段的值,如果你想從服務器端代碼可用的值。這裏是一個類似的帖子:http://stackoverflow.com/questions/2493209/how-to-fill-a-label-text-property-via-jquery – mreyeros 2012-07-31 14:52:34

+0

啊,完美。謝謝! – 2012-07-31 15:08:06