"document.formName" ist nicht definiert?

7

Ich habe eine ASP.NET-Site lokal auf meinem XP-System mit IIS Express ausgeführt. Es gibt eine Live-Version der Site, die auf einem Windows-Server ausgeführt wird.

In den Webseiten verweist das Javascript häufig auf ein Formular auf der Seite mit dem Stil document.formName , wobei formName der Name des Formulars ist. Soweit ich weiß, ist dies eine Cross-Browser-Methode, zusammen mit document.forms.formName und document.forms[0] und so weiter.

Auf meiner lokalen Entwicklungssite ist die Referenz document.frm1 (ich weiß, schlechte Benennungspraxis) fehlerhaft; es ist undefiniert. Auf der anderen Seite funktioniert document.forms.frm1 gut. Seltsamerweise geschieht dies nicht auf dem Server, obwohl beide Seiten identisch sind, soweit der Code geht. Ich habe mit Firebug und sowohl IE8 als auch Firefox 6 überprüft.

Ein weiterer seltsamer Teil: Überprüfung mit Firebug, document.frm1 ist nicht definiert, aber document.frmClose (ein anderes Formular) existiert! Huh?!

Jemand hat das schon mal erlebt?

    
voithos 15.09.2011, 19:21
quelle

4 Antworten

12

BEARBEITEN 1

Ich habe etwas experimentiert und festgestellt, dass die Eigenschaft id für document.forms verwendet wird, während die Eigenschaft name für document.formName

verwendet wird

Ссылка

Ursprüngliche Antwort

Stellen Sie sicher, dass Ihr JavaScript nicht ausgeführt wird, bevor DOM bereit ist. Eine Möglichkeit, um zu helfen, ist, dass Sie Ihr Javascript unten auf der Seite platzieren, oder wenn Sie ein Framework verwenden, müssen Sie den Code in eine ready -Funktion einfügen:

jQuery: Ссылка

Mootools: Ссылка

Vanille Javascript:

%Vor%

Der Grund hierfür ist, dass der lokale Entwicklungsserver die Seite schneller lädt als der Live-Server. Das Timing funktioniert so, dass Sie normalerweise nicht an beiden Stellen den gleichen Fehler erhalten - die Hervorhebung wird hinzugefügt, weil Sie wahrscheinlich den Fehler an beiden Stellen reproduzieren könnten, wenn Sie es mehrmals versuchen würden.

    
Chris Baker 15.09.2011, 19:26
quelle
6

Um das name -Attribut zu erhalten, das zu Ihrem Formular -Element hinzugefügt wurde, müssen Sie ...

hinzufügen %Vor%

... zu Ihrer web.config

    
Robert Brooker 11.02.2013 00:09
quelle
3

Ich empfehle, das name-Attribut nicht für JavaScript-Identifizierungszwecke zu verwenden. Geben Sie dem Element stattdessen eine ID und verwenden Sie

%Vor%

z.B.

%Vor%     
Asmor 15.09.2011 19:33
quelle
0

Die beste Lösung dafür ist unten:
Fügen Sie einfach eine Namenseigenschaft in das form-Tag ein


Wenn Sie den folgenden Code verwenden

%Vor%

Was Sie hier ausführen müssen, ist:
Hinzufügen der Eigenschaft "name" im Formular-Tag wie unten

%Vor%     
Nitin Shah 02.04.2015 11:06
quelle

Tags und Links