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>
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:
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;
Dies geschah auch, weil ich versuchte, eine Funktion mit demselben Variablennamen aufzurufen.
var fun = fun()
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!"
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.
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'