/ / ASP.NET MasterPage + Javascript-Fehler - .net, asp.net, Javascript, Masterseiten

ASP.NET MasterPage + Javascript Fehler - .net, asp.net, Javascript, Master-Seiten

Nachdem ich ein ASP.NET-Webformular (v3.5) zur Verwendung einer Masterseite konvertiert hatte, wurde ein seltsamer Javascript-Fehler angezeigt.

Die Inhaltsseite enthält einen Javascript-Block. Hier ist es:

 <script type="text/javascript">

var attCount = 0;

function CreateAttachmentControl() {
var newAtt = document.createElement("span");
var newAttName = "area" + attCount;
newAtt.setAttribute("id", newAttName);
newAtt.setAttribute("name", newAttName);

var newInput = document.createElement("input");
var newInputName = "att" + attCount;
newInput.setAttribute("type", "file");
newInput.setAttribute("id", newInputName);
newInput.setAttribute("name", newInputName);

if (newInput.addEventListener) {
newInput.addEventListener("onchange", CreateAttachmentControl, false);
} else if (newInput.attachEvent) {
newInput.attachEvent("onchange", CreateAttachmentControl);
} else {
newInput.onchange = CreateAttachmentControl;
}

var newRemove = document.createElement("a");
newRemove.setAttribute("href", "javascript:RemoveAttachmentControl("" + attCount + "")");
newRemove.setAttribute("title", "Remove this attachment");
newRemove.innerHTML = "X";
newAtt.appendChild(newInput);
newAtt.appendChild(document.createTextNode(" "));
newAtt.appendChild(newRemove);
newAtt.appendChild(document.createElement("br"));
attArea.appendChild(newAtt); // error here

attCount++;
}

function RemoveAttachmentControl(n) {

// get input element
var input = document.getElementById("att" + n);

// if the input is blank dont delete
if (input.value != "" && input.value != null) {
var att = document.getElementById("area" + n);
attArea.removeChild(att);
}
}
</script>

Der Fehler lautet: "attArea" ist undefiniert

Aber ich weiß, dass es nicht so ist, denn direkt unter meinem Javascript-Block befindet sich Folgendes:

...<td align="left" colspan="2" style="height: 13px" id="attArea" name="attArea"></td>...

Dies funktionierte perfekt, bevor ich das Webformular in eine Inhaltsseite mit einer Masterseite konvertierte. Gibt es einige bekannte Probleme mit Javascript + Masterpage?

Vielen Dank

Antworten:

3 für die Antwort № 1

In dem von Ihnen angegebenen Codebeispiel attArea ist nicht definiert. Der erste Hinweis darauf, den Sie anrufen attArea.appendChild(). Ist es irgendwo höher in der Quelle deklariert, die Sie nicht angegeben haben?


0 für die Antwort № 2

Ich denke du fehlst:

var attArea = document.getElementById("attArea");
attArea.appendChild(newAtt); // no more error!