2017-02-10 116 views
0

我有一個JavaScript函數會引起模糊。奇怪的是,我第一次運行它時運行良好,從那以後,我收到一個錯誤,說JavaScript函數沒有定義 - 並停止運行。我搜索了類似的問題,但沒有任何建議能夠解決這個問題。 Asp.Net 3.5 Webforms,如果它很重要。我已經包含了一些可能與問題無關的額外功能和代碼行。我遇到的問題是大功能updateFiscalGrid。綁定到事件的HTML在函數下面。JavaScript函數沒有定義錯誤(但它是定義的)

<%@ Page MasterPageFile="~/MasterPages/NPRPage.Master" CodeBehind="NPRFundingApplication.aspx.cs" Inherits="Tea.Hcf.Web.Secured.NPRFundingApplication" AutoEventWireup="true" Language="C#" EnableEventValidation="true" MaintainScrollPositionOnPostback="true" %> 

<%@ Register TagPrefix="ew" Namespace="eWorld.UI" Assembly="eWorld.UI" %> 
<%@ Register TagPrefix="hcf" Namespace="Tea.Hcf.Web" Assembly="Tea.Hcf.Web" %> 
<%@ Register Src="../Controls/NpCdnSearch.ascx" TagName="NpCdnSearch" TagPrefix="np1" %> 
<%@ Register Src="../Controls/NpStudentRoster.ascx" TagName="NpStudentRoster" TagPrefix="np2" %> 

<script type="text/javascript" language="javascript"> 
    //<![CDATA[ 

    function showMaxWin(nUrl) { 
     var h = 600; 
     var w = 800; 
     var features = 'resizable=1, width=' + w + ', height=' + h + ', top=0, left=0'; 
     NewWin = window.open(nUrl, 'NewWin', features); 
    } 

    function dateChangedCallback() { 
     updateSubTotals(); 
    } 

    function updateFiscalGrid(){ 
     var RelatedServicesCost = document.getElementById('<%= RPCB_SUPP_SVCS_SUBTOTAL3.ClientID %>').value; 
     var ResidentialCare = document.getElementById('<%= RPCB_RES_SVCS_SUBTOTAL3.ClientID %>').value; 
     var TotalCostforResPlacement = document.getElementById('<%= TotalResidentialPlacement.ClientID %>').value; 
     var SetAside = document.getElementById('<%= rblSetAsideMet.ClientID %>').value; 
     var LocalTaxSubtraction = document.getElementById('<%= LocalTaxShareSubtraction.ClientID %>').value; 
     var IDEABRelatedServiceCost = document.getElementById('<%= RelatedServicesSetAside.ClientID %>').value; 
     var IDEABDiscretionaryServicesCost = document.getElementById('<%= RelatedServicesDiscretionary.ClientID %>').value; 
     var IDEABREsidentialCare = document.getElementById('<%= ResidentialCareSetAside.ClientID %>').value; 
     var IDEABDiscResCare = document.getElementById('<%= ResidentialCareDiscretionary.ClientID %>').value; 
     var StateFSP = document.getElementById('<%= TotalEducationServices2.ClientID %>').value; 
     var Discretionary = document.getElementById('<%= DiscretionaryTotal.ClientID %>').value; 
     var IDEABAward = document.getElementById('<%= IdeaBAward.ClientID %>').value; 
     if(SetAside = '0'){ 
      Discretionary = LocalTaxSubtraction + IDEABRelatedServiceCost + IDEABDiscretionaryServicesCost + IDEABREsidentialCare + IDEABDiscResCare; 
     } 
     else { 
      Discretionary = LocalTaxSubtraction + IDEABDiscretionaryServicesCost + IDEABDiscResCare; 
     } 
     IDEABAward = (RelatedServicesCost + ResidentialCare + TotalCostforResPlacement) - Number(Discretionary)); 
     //IDEABAward = (Number(RelatedServicesCost) + Number(ResidentialCare) + Number(TotalCostforResPlacement)) - Number(Discretionary)); 
     document.getElementById('<%= DiscretionaryTotal.ClientID %>').value = Discretionary; 
     document.getElementById('<%= IdeaBAward.ClientID %>').value = IDEABAward; 
    } 


    //]]> 
</script> 




    <td> 
     <hcf:CurrencyBox ID="LocalTaxShareSubtraction" OnBlur= "updateFiscalGrid();" Precision="2" runat="server" /> 
    </td> 
+0

嗨!你檢查過你的代碼嗎?我的意思是在瀏覽器。也許在你的javascript函數'<%%>'裏面設置了一些變量會導致腳本出錯,使得函數'not defined' – MarceloBarbosa

+0

我解決了這個問題!這是一個額外的) –

回答

2

使用瀏覽器的開發工具,看看您是否可以從控制檯手動調用該函數。如果你仍然得到函數未定義然後執行以下操作:

  • 檢查錯別字
  • 如果您使用的是母版頁,請確保您沒有將容器標籤中的腳本頁面引用(獲得與實際網頁內容覆蓋了,這是從個人的經驗笑)
  • 清除緩存,並重新加載頁面
+0

我剛纔說我解決了它。這是一個額外的括號 –

0

在這一天結束時,你的服務器端代碼沒有關係。我可以用任何其他服務器端語言編寫。

如果您在瀏覽器中看到該錯誤,則需要檢查由您的服務器端代碼生成的JavaScript代碼。

一旦出現,您將能夠看到函數是否真的被定義。如果沒有,服務器端JavaScript代碼生成有些問題。

相關問題