J'ai une fonction JavaScript qui se déclenche sur le flou. Étrangement, cela a bien fonctionné la première fois que je l'ai exécutée et, depuis lors, une erreur m'indiquant que la fonction JavaScript n'est pas définie, est arrêtée. J'ai cherché sur Google des problèmes similaires, mais aucun des conseils n'a été en mesure de résoudre le problème. Formulaires Web Asp.Net 3.5, si cela compte. J'ai inclus des fonctions supplémentaires et des lignes de code qui peuvent ne pas être liées au problème. Le problème que je rencontre concerne updateFiscalGrid, la grande fonction. Le code HTML associé à l'événement est situé sous la fonction.
<%@ 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>
À l'aide des outils de développement du navigateur, voyez si vous pouvez appeler la fonction manuellement à partir de la console. Si vous obtenez toujours une fonction non définie, procédez comme suit:
ce qui me laisse à cette question est que j'avais un empty function
dans mon espace de noms
et quand j’ai called
cette fonction, j’ai eu cette error
qui fait que la page entière ne fonctionne plus
TypeError: MyNamespcae.myFunction is not a function
alors ne créez pas de fonction vide, ajoutez au moins une instruction comme void (0); ou retourne null;
c'est probablement la raison pour laquelle: Uncaught ReferenceError: la fonction n'est pas définie avec onclick
En réponse courte: "N'utilisez jamais .onclick (), ou des attributs similaires [onblur ()] à partir d'un script utilisateur!"
Au bout du compte, votre code côté serveur n'a pas d'importance. J'aurais pu être écrit dans une autre langue côté serveur.
Si vous constatez cette erreur sur le navigateur, vous devez vérifier le code javascript généré par votre code côté serveur.
Une fois là-bas, vous pourrez voir si la fonction est vraiment définie ou non. Sinon, il y a un problème avec la génération de code javascript côté serveur.