2010-08-14 24 views
1

我在內容頁面中編寫了兩個javascript函數。然後我拿到一個html文本框,並在onkeypress事件上嘗試調用這兩個函數,但是我正在運行該應用程序,並且沒有找到任何輸出來幫助我。 這裏我試圖計算按鍵事件中文本框中的字符數。如果我在簡單頁面中編寫javascript函數,那麼它會成功運行,但它不會在內容頁面中運行。如何在內容頁面html中編寫javascript函數以及如何調用該函數

下面是代碼

<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile ="~/Site1.Master" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %> 

<asp:Content ID="Content1" runat="server" 
    contentplaceholderid="ContentPlaceHolder1"> 

    <script language ="javascript" type = "text/javascript"> 
    maxL=0; 
var bName = navigator.appName; 

    function taCount(taObj,Cnt,totmsg) 
    { 
     objCnt=createObject(Cnt); 
     objtotmsg = createObject(totmsg); 
     objVal=taObj.value; 
     if (objCnt) 
     { 
      if(bName == "Netscape") 
      { 
       //objCnt.textContent = maxL-objVal.length;} 
       var totalchar = parseInt((objVal.length - 1)/160); 
       objCnt.textContent = maxL + objVal.length; 
       objtotmsg.textContent = totalchar + 1; 
      } 
      //else{objCnt.innerText= maxL -objVal.length;} 
      else 
      { 
       var totalchar = parseInt((objVal.length - 1)/160); 
       objCnt.innerText= maxL + objVal.length; 
       objtotmsg.innerText = totalchar + 1; 
      } 
     } 
     return true; 
    } 
    function createObject(objId) 
    { 
     if (document.getElementById) return document.getElementById(objId); 
     else if (document.layers) return eval("document." + objId); 
     else if (document.all) return eval("document.all." + objId); 
     else return eval("document." + objId); 
    } 

    </script> 
<textarea id="TextArea1" onkeyup="return taCount(this,'charcount','totalmsg')" cols="20" rows="10"></textarea> 

    <asp:Label ID="charcount" runat="server" Text="0"></asp:Label>/<asp:Label ID="totalmsg" runat="server" Text="0"></asp:Label> 

</asp:Content> 
+0

接受答案,因爲你還困擾於發表評論說它解決了你的問題。 – Jeroen 2010-08-14 14:42:04

回答

4

這是因爲標識得到延長(其命名容器是預先計劃)時的母版頁裏面,所以不是這樣:

taCount(this,'charcount','totalmsg') 

你將需要這個,它得到他們的實際渲染ID:

taCount(this,'<%=charcount.ClientID %>','<%=totalmsg.ClientID %>') 

如果您在瀏覽器中查看源代碼和searc h代表charcounttotalmsg,當您在該母版頁中呈現時,您會看到我對這些ID的意思,它們可能看起來像這樣:_ctl00_Content1_charcount

+0

謝謝你解決我的問題 我們可以做好朋友 只是給我你的郵件編號 謝謝再次解決我的問題 – Neo 2010-08-14 13:11:12

+1

@Neo - 有沒有需要:)歡迎來到SO,你可以感謝我,並幫助下一個人使用左邊的複選標記來接受這個答案......你應該這樣做,以最好的答案來解決你的每個問題的問題。 – 2010-08-14 13:16:26

相關問題