未捕获的 JavaScript 类型错误
2019-03-12
103
我收到了此消息“Uncaught TypeError:无法读取 null 的属性‘split’”,此消息适用于此
linesplitted = elements[i].nextSibling.nodeValue.split("||");
代码如下。如果您能提供解决方案,我将不胜感激。此代码之前曾运行过。我认为这与新的 php 或 jquery 有关...
$('#r_NEStd').hide(); // Das Feld ist am Anfang versteckt und duch klicken
auf NE wird wieder gezeigt.
$("input[name='x_Posten[]'], input[name='x_NE[]']").click(function() { //
Field2 has multiple inputs(checkboxes) so they should be selected by name
document.getElementById("x_Total").readOnly = true;
document.getElementById("x_Auslagen").readOnly = true;
document.getElementById("x_RBetrag").readOnly = true;
if ($("input[name='x_Posten[]']:checked").val() &&
$("input[name='x_NE[]']:checked").val()) { // WENN NichtErhaeltlichkeit und
Posten geklickt sind
document.finvoicesadd.x_Total.value = '';
var Anzahl = 0;
var Auslagen = 0;
var AuslagenMwSt = 0;
var Total = 0;
var splitted;
var nestdsatz = document.finvoicesadd.x_NEStd.value;
var e = document.getElementById("x_Vorschuss");
var VorschussValue = e.options[e.selectedIndex].value;
var nestdsatz = document.finvoicesadd.x_NEStd.value;
var elements = document.getElementsByName("x_Posten[]");
for (i = 0; i < elements.length; i++) {
if (elements[i].checked) {
splitted = elements[i].nextSibling.nodeValue.split("||");
Auslagen = Auslagen + +parseFloat(splitted[4]);
AuslagenMwSt = AuslagenMwSt + +(parseFloat(splitted[4]) *
(1 + parseFloat(splitted[5])));
Anzahl = Anzahl + +parseFloat(splitted[2]);
Total = Total + +(parseFloat(splitted[2] * nestdsatz) *
(1 + parseFloat(splitted[5])));
}
}
document.finvoicesadd.x_Auslagen.value = Auslagen.toFixed(2);
document.finvoicesadd.x_Total.value = (Total + AuslagenMwSt).toFixed(2);
document.finvoicesadd.x_RBetrag.value = (Math.round(((Total +
AuslagenMwSt) - VorschussValue) * 20, 0) / 20).toFixed(2);
document.finvoicesadd.x_Vorlage.value = "rechnungne";
} else { // WENN x_Posten oder NE nicht oder nur ein Feld gelickt ist
document.finvoicesadd.x_Total.value = '';
var Anzahl = 0;
var Auslagen = 0;
var Total = 0;
var splitted;
var e = document.getElementById("x_Vorschuss");
var VorschussValue = e.options[e.selectedIndex].value;
var nestdsatz = document.finvoicesadd.x_NEStd.value;
var elements = document.getElementsByName("x_Posten[]");
for (i = 0; i < elements.length; i++) {
if (elements[i].checked) {
splitted = elements[i].nextSibling.nodeValue.split("||");
// Auslagen = Auslagen+ +(parseFloat(splitted[4])*
(1 + parseFloat(splitted[5])));
Auslagen = Auslagen + +parseFloat(splitted[4]);
Anzahl = Anzahl + +parseFloat(splitted[3]);
Total = Total + +parseFloat(splitted[6]);
}
}
document.finvoicesadd.x_Auslagen.value = Auslagen.toFixed(2);
document.finvoicesadd.x_Total.value = (Total).toFixed(2);
document.finvoicesadd.x_RBetrag.value = (Math.round(((Total) -
VorschussValue) * 20, 0) / 20).toFixed(2);
document.finvoicesadd.x_Vorlage.value = "rechnung";
}
});
1个回答
将这个:
if (elements[i].checked) {
替换为:
debugger;
if (elements[i].checked && elements[i].nextSibling.nodeValue != null) {
这将解决错误,虽然我不知道它会对您的程序产生什么影响。
错误是由于您检查时
elements[i].nextSibling.nodeValue
为空。
Saturnix
2019-03-12