it-swarm.com.de

Nicht definierte JavaScript-Funktion (ABER IT IS DEFINIERT)

Ich habe eine JavaScript-Funktion, die bei Unschärfe ausgelöst wird. Seltsamerweise funktionierte es gut, als ich das erste Mal ausgeführt wurde, und seitdem habe ich eine Fehlermeldung erhalten, die besagt, dass JavaScript-Funktion nicht definiert ist. Ich habe nach ähnlichen Problemen gegoogelt, aber keiner der Ratschläge konnte das Problem lösen. Asp.Net 3.5 Webforms, wenn es darauf ankommt. Ich habe einige zusätzliche Funktionen und Codezeilen beigefügt, die möglicherweise nicht mit dem Problem zusammenhängen. Das Problem, das ich habe, betrifft updateFiscalGrid, die große Funktion. Der HTML-Code, der an das Ereignis gebunden ist, befindet sich unterhalb der Funktion. 

<%@ 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>
7
Adam A

Verwenden Sie Browser-Entwicklungstools, um zu sehen, ob Sie die Funktion manuell über die Konsole aufrufen können. Wenn Sie immer noch nicht definierte Funktion erhalten, gehen Sie wie folgt vor:

  • Prüfen Sie auf Tippfehler
  • Wenn Sie eine Masterseite verwenden, stellen Sie sicher, dass Sie nicht den Verweis auf die Skriptseite in die Containertags einfügen.
  • Leeren Sie den Cache und laden Sie die Seite neu
3
Jimmy Hodgson

was mich zu dieser Frage erlaubt, ist, dass ich einen empty function in meinem Namensraum hatte 

und als ich diese Funktion called hatte, hatte ich diese error, die bewirkt, dass die gesamte Seite nicht mehr funktioniert 

TypeError: MyNamespcae.myFunction is not a function

erstellen Sie also keine leere Funktion, sondern fügen Sie eine Anweisung wie void (0) hinzu. oder null zurückgeben;

1

Dies geschah auch, weil ich versuchte, eine Funktion mit demselben Variablennamen aufzurufen.

var fun = fun()

1
Deke

naja, wahrscheinlich ist das der Grund, warum: Unbekannter ReferenceError: Funktion ist nicht mit onclick definiert

Als kurze Antwort: "Verwenden Sie niemals .onclick () oder ähnliche Attribute [onblur ()] aus einem Userscript!"

1
peterPP1

Am Ende des Tages spielt der serverseitige Code keine Rolle. Ich hätte in einer anderen Sprache des Servers geschrieben werden können.

Wenn Sie diesen Fehler im Browser sehen, müssen Sie den Javascript-Code überprüfen, der von Ihrem serverseitigen Code generiert wurde.

Dort können Sie sehen, ob die Funktion wirklich definiert ist oder nicht. Wenn nicht, stimmt die serverseitige Javascript-Codegenerierung nicht.

0
Mestre San

Als Referenz,

In meinem Fall habe ich meinen Variablennamen in function falsch eingegeben.

var myVar = "";

Aber in der Funktion gab es ein Leerzeichen für "Mein Var" ein, dann sah ich unten eine Meldung auf der Konsole.

'Funktion xxx ist undefiniert'

0