Je reçois une erreur" formatCurrency "" SCRIPT438: Objet ne prend pas en charge la propriété ou la méthode "" lors de la mise en forme de la devise pour les cellules d'un référentiel jQuery en utilisant la bibliothèque jQuery formatCurrency.SCRIPT438: L'objet ne prend pas en charge la propriété ou la méthode 'formatCurrency' "
code: jQuery Initialisation DataTable:
var oTable = $('#tblTest').dataTable({
"bFilter": false,
"bInfo": false,
"aoColumns": [{ "bVisible": false }, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null],
"aaSorting": [[0, 'desc', 1]],
"bScrollInfinite": true, //this property disables pagination
"sScrollY": "230px",
"sScrollX": "940px",
"fnCreatedRow": function (nRow, aData, iDataIndex) {
RefreshGrid();
}
});
function RefreshGrid() {
var nRow = $('#tblTest').dataTable().fnGetNodes();
for (var i = 0; i < nRow.length; i++) {
var Total = (nRow[i].children[6].children[0].innerHTML * nRow[i].children[7].children[0].innerHTML).toFixed(2);
$("input[id$='hfFormat']").val(Total);
var unformatted = $("input[id$='hfFormat']").val();
var formatted = $("input[id$='hfFormat']").val(unformatted).formatCurrency().val();
nRow[i].children[8].children[0].innerHTML = formatted; //Total;
var Veriance = Total - nRow[i].children[11].children[0].value;
nRow[i].children[13].children[0].innerHTML = Veriance.toFixed(2);
nRow[i].children[9].children[0].disabled = true; //CrNo
nRow[i].children[10].children[0].disabled = true; //Allocate
nRow[i].children[11].children[0].disabled = true; //CrAmount
nRow[i].children[14].children[0].disabled = true; //Accept Veriance
nRow[i].children[15].children[0].disabled = true; //Edit
nRow[i].children[10].children[0].checked = false; //Allocate
nRow[i].children[14].children[0].checked = false; //Accept Veriance
nRow[i].children[15].children[0].checked = false; //Edit
nRow[i].style.backgroundColor = "";
if (nRow[i].children[12].children[0].defaultValue == "RejectedReturn") {
nRow[i].style.backgroundColor = "#FFEDE6";
}
else if (nRow[i].children[12].children[0].defaultValue == "CompleteWithVariance") {
nRow[i].children[15].children[0].disabled = false; //Edit
nRow[i].children[14].children[0].checked = true; //Accept Verianc
nRow[i].style.backgroundColor = "#D1D1D1";
}
else if (nRow[i].children[12].children[0].defaultValue == "Complete") {
nRow[i].children[15].children[0].disabled = false; //Edit
nRow[i].children[10].children[0].checked = true; //Allocate
nRow[i].style.backgroundColor = "#D1D1D1";
}
else if (nRow[i].children[12].children[0].defaultValue == "Outstanding") {
nRow[i].children[9].children[0].disabled = false; //CrNo
nRow[i].children[10].children[0].disabled = false; //Allocate
nRow[i].children[11].children[0].disabled = false; //CrAmount
nRow[i].children[14].children[0].disabled = false; //Accept Veriance
}
else if (nRow[i].children[12].children[0].defaultValue == "Partial") {
nRow[i].children[9].children[0].disabled = false; //CrNo
nRow[i].children[10].children[0].disabled = false; //Allocate
nRow[i].children[11].children[0].disabled = false; //CrAmount
nRow[i].children[14].children[0].disabled = false; //Accept Veriance
}
}
}
La même approche a travaillé dans d'autres pages Web, mais la seule différence ici est que RefreshGrid() est appelée à partir de la fonction fnCreatedRow alors que dans les autres cas, il était appelé à partir des fonctions fnRowCallback et fnFooterCallback. La valeur "non formatée" sera présente dans le champ caché.
merci pour la correction d'orthographe, j'ai essayé votre suggestion, pas de changement. Ce pourrait être l'enchaînement auquel vous avez fait allusion. – user2248185
je reçois alors un "SCRIPT438: Object ne supporte pas la propriété ou la méthode 'toNumber'" erreur. J'aurais dit que le sélecteur ne peut pas trouver l'objet de champ caché mais quand je l'utilise pour obtenir la valeur du champ caché, il renvoie la valeur. – user2248185
La suggestion suivante que j'ai pour vous est de revenir en arrière et de vérifier ligne par ligne la syntaxe de tous les JS en cours d'exécution sur la page. Les erreurs 'SCRIPT438' sont souvent causées par des erreurs de syntaxe non valides qui se trouvent ailleurs dans le script. –