Fehler im Script
Thorsten Geier
- javascript
Hi,
ich binde folgendes Script in meine Seite ein, jedoch sagt er mir, dass document.dgb.gbname = Null oder kein Objekt ist.
Brauche die Umwandlung von Gross/Kleinschreibung für ein Formular bzw. Script das über den server läuft. Das "erste" MachKlein funktioniert einwandfrei, das "zweite" MachKlein2 leider nicht.
Wo liegt der Fehler?
Vielen Dank
<script type="text/javascript">
<!--
function MachKlein () {
var neu = document.gbook.gbname.value.toLowerCase();
document.gbook.gbname.value = neu;
}
function MachKlein2 () {
var neu2 = document.dgb.gbname.value.toLowerCase();
document.dgb.gbname.value = neu2;
}
</script>
ich binde folgendes Script in meine Seite ein, jedoch sagt er mir, dass document.dgb.gbname = Null oder kein Objekt ist.
<script type="text/javascript">
<!--
function MachKlein () {
var neu = document.gbook.gbname.value.toLowerCase();
document.gbook.gbname.value = neu;
}
function MachKlein2 () {
var neu2 = document.dgb.gbname.value.toLowerCase();
document.dgb.gbname.value = neu2;
}
</script>
Du greifst hier auf Elemente der Seite zu, so das eine Fehlersuche ohne Kenntnis des Seiteninhalts unmöglich ist. Bitte Quelltext nachliefern.
Prüfe aber vorher, ob Du wirklich ein Formular namens dgb in der Seite hast. Vielleicht weigert sich der Browser aber auch, mit dem DGB zusammenzuarbeiten, was ich persönlich sehr gut verstehen könnte :)
Gruß,
soenk.e
ich binde folgendes Script in meine Seite ein, jedoch sagt er mir, dass document.dgb.gbname = Null oder kein Objekt ist.
<script type="text/javascript">
<!--
function MachKlein () {
var neu = document.gbook.gbname.value.toLowerCase();
document.gbook.gbname.value = neu;
}
function MachKlein2 () {
var neu2 = document.dgb.gbname.value.toLowerCase();
document.dgb.gbname.value = neu2;
}
</script>
Quelltext von Formular 1 dazu:
<form name="gbook" action="http://xxxxxx/GB" method="get" target="">
<input type="hidden" name="act" value="postgb">
<input type="hidden" name="gbname" value="$gbname">
<input type="hidden" name="name" value="$name">
<input type="hidden" name="connectionID" value="$connectionID">
<textarea name="input" style="background-color:000033; border: 2 font-family:Verdana; color:FFFFFF; font-size:8pt; width: 400px; height: 100px;"></textarea>
<input type="hidden" name="end"><br>
<input type="Submit" value="Abschicken" onClick="MachKlein()" style="background-color:000000; border: 2 outset #555555; font-family:Verdana; color:FFFFFF; font-size:8pt; width: 400px; text-align: center;">
</form>
Quelltext von Formular 2 dazu:
<form name="dgb" action="http://xxxxxx/GB" method="get" target="">
<input type="hidden" name="act" value="delgb">
<input type="hidden" name="gbname" value="$gbname">
<input type="hidden" name="connectionID" value="$connectionID">
<input type="hidden" name="gb" value="$number">
<input type="hidden" name="end">
<input type="Submit" value="Löschen" onClick="MachKlein2()" style="background-color:000000; border: 2 outset #555555; font-family:Verdana; color:FFFFFF; font-size:8pt; width: 100px; text-align: center;">
</form>
hi,
<input type="hidden" name="act" value="postgb">
das geht noch so.
<input type="hidden" name="gbname" value="$gbname">
<input type="hidden" name="name" value="$name">
<input type="hidden" name="connectionID" value="$connectionID">
und hir versuchst du, eine Variable hineinzuschreiben, die gar nicht existiert. Laß die $-Zeichen weg
» <input type="hidden" name="act" value="delgb">
<input type="hidden" name="gbname" value="$gbname">
<input type="hidden" name="connectionID" value="$connectionID">
<input type="hidden" name="gb" value="$number">
<input type="hidden" name="end">
dasselbe
Christoph S.
hi,
<input type="hidden" name="act" value="postgb">
das geht noch so.
<input type="hidden" name="gbname" value="$gbname">
<input type="hidden" name="name" value="$name">
<input type="hidden" name="connectionID" value="$connectionID">
und hir versuchst du, eine Variable hineinzuschreiben, die gar nicht existiert. Laß die $-Zeichen weg
» <input type="hidden" name="act" value="delgb">
<input type="hidden" name="gbname" value="$gbname">
<input type="hidden" name="connectionID" value="$connectionID">
<input type="hidden" name="gb" value="$number">
<input type="hidden" name="end">
dasselbe
Christoph S.
Hi Christoph,
die $angaben werden automatisch ersetzt, also dort steht dann ein Name oder eine Angabe statt $..., daran scheint es nicht zu liegen.
Thorsten Geier
nochmals hallo,
die $angaben werden automatisch ersetzt, also dort steht dann ein Name oder eine Angabe statt $..., daran scheint es nicht zu liegen.
Ich denke, ich kann Zeilen wie "document.dgb.gbname.value = neu2" lesen und verstehen. Versuchen solltest du es trotzdem einmal, da das Dollarzeichen in gewisser Weise ein "Sonderzeichen" ist. Es gehört zu den Regulären Ausdrücken, siehe http://selfhtml.teamone.de/javascript/objekte/regexp.htm#dollar_1_9
Christoph S.
Hallo Sönke,
versuch doch mal, alles was Du anfängst auch zu beenden :-))
oder sollte ich lieber schreiben :->>
oder noch besser //->>
am Allerbesten //-->
und jetzt noch an der richtigen Stelle???
<script type="text/javascript">
<!--
function MachKlein () {
var neu = document.gbook.gbname.value.toLowerCase();
document.gbook.gbname.value = neu;
}
function MachKlein2 () {
var neu2 = document.dgb.gbname.value.toLowerCase();
document.dgb.gbname.value = neu2;
}
//-->
</script>
Der Script-Parser hat mich heute mit der gleichen Sache mindestens acht mal geärgert. Sonst hätte ich es auch nicht gleich gesehen.
Ich poste gleich noch mal einen viel vertrackteren Fehler, den ich nicht finde. Warts ab
Grüße
Tom
hi,
oder sollte ich lieber schreiben :->>
oder noch besser //->>
am Allerbesten //-->
und jetzt noch an der richtigen Stelle???
das ist mittlerweiele relativ unwichtig, man kanns problemlos völlig weglassen. Alle aktuellen Browser können <script>-Bereiche identifizieren und stellen sie nicht dar, so daß man sie nicht mehr "verstecken" muß. Aber wenn schon, dann muß es natürlich korrekt eingesetzt werden
Ich poste gleich noch mal einen viel vertrackteren Fehler, den ich nicht finde. Warts ab
na, wo isser denn ?
Grüße aus Berlin
Christoph S.
<script type="text/javascript">
<!--
function MachKlein () {
var neu = document.gbook.gbname.value.toLowerCase();
document.gbook.gbname.value = neu;
}
function MachKlein2 () {
var neu2 = document.dgb.gbname.value.toLowerCase();
document.dgb.gbname.value = neu2;
}
//-->
</script>
Hi nochmal,
Hab jetzt dieses //--> auch noch eingesetzt, aber die Fehlermeldung mag mich wohl nicht und belästigt mich weiter...
Fehlermeldung:
document.dgb.gbname.value ist Null oder kein Objekt
Args, versteh nicht das das erste einwandfrei geht und das MachKlein2 dann den Geist aufgibt...
Mit verzweifelten Grüssen
Thorsten Geier
Die Message war natürlich nicht für Sönke.
Also nochmal auf Anfang:
Hallo Thorsten,
...
Hallo Thorsten,
nochmal ich.
Ich habe das Script sowohl mit NS 4.73 als auch mit M$IE 5.5 ausprobier und keinen Fehler mehr festgestellt, mit Ausnahme er URL natürlich, die ich nicht erreichen kann...
Lokal gibts aber keinen Fehler mehr.
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
function MachKlein ()
{
var neu = document.gbook.gbname.value.toLowerCase();
document.gbook.gbname.value = neu;
}
function MachKlein2 ()
{
var neu2 = document.dgb.gbname.value.toLowerCase();
document.dgb.gbname.value = neu2;
}
//-->
</script>
</head>
<body>
<form name="gbook" action="http://xxxxxx/GB" method="get" target="Thorsten.htm">
<input type="hidden" name="act" value="postgb">
<input type="hidden" name="gbname" value="$gbname">
<input type="hidden" name="name" value="$name">
<input type="hidden" name="connectionID" value="$connectionID">
<textarea name="input" style="background-color:000033; border: 2 font-family:Verdana; color:FFFFFF; font-size:8pt; width: 400px; height: 100px;"></textarea>
<input type="hidden" name="end"><br>
<input type="Submit" value="Abschicken" onClick="MachKlein()" style="background-color:000000; border: 2 outset #555555; font-family:Verdana; color:FFFFFF; font-size:8pt; width: 400px; text-align: center;">
</form>
<form name="dgb" action="http://xxxxxx/GB" method="get" target="Thorsten.htm">
<input type="hidden" name="act" value="delgb">
<input type="hidden" name="gbname" value="$gbname">
<input type="hidden" name="connectionID" value="$connectionID">
<input type="hidden" name="gb" value="$number">
<input type="hidden" name="end">
<input type="Submit" value="Löschen" onClick="MachKlein2()" style="background-color:000000; border: 2 outset #555555; font-family:Verdana; color:FFFFFF; font-size:8pt; width: 100px; text-align: center;">
</form
</body>
</html>
Hallo Thorsten,
nochmal ich.
Ich habe das Script sowohl mit NS 4.73 als auch mit M$IE 5.5 ausprobier und keinen Fehler mehr festgestellt, mit Ausnahme er URL natürlich, die ich nicht erreichen kann...
Lokal gibts aber keinen Fehler mehr.
hi,
Genauso hab ich es nun eingebaut, leider gibt es immer noch das Problem, dass er im zweiten (MachKlein2 ()) immer noch nicht die Grossschreibung in Kleinschreibung umwandelt, irgendwie verstehe ich den Fehler selber nicht.
Thorsten
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
function MachKlein ()
{
var neu = document.gbook.gbname.value.toLowerCase();
document.gbook.gbname.value = neu;
}
function MachKlein2 ()
{
var neu2 = document.dgb.gbname.value.toLowerCase();
document.dgb.gbname.value = neu2;
}
//-->
</script>
</head>
<body>
<form name="gbook" action="http://xxxxxx/GB" method="get" target="Thorsten.htm">
<input type="hidden" name="act" value="postgb">
<input type="hidden" name="gbname" value="$gbname">
<input type="hidden" name="name" value="$name">
<input type="hidden" name="connectionID" value="$connectionID">
<textarea name="input" style="background-color:000033; border: 2 font-family:Verdana; color:FFFFFF; font-size:8pt; width: 400px; height: 100px;"></textarea>
<input type="hidden" name="end"><br>
<input type="Submit" value="Abschicken" onClick="MachKlein()" style="background-color:000000; border: 2 outset #555555; font-family:Verdana; color:FFFFFF; font-size:8pt; width: 400px; text-align: center;">
</form>
<form name="dgb" action="http://xxxxxx/GB" method="get" target="Thorsten.htm">
<input type="hidden" name="act" value="delgb">
<input type="hidden" name="gbname" value="$gbname">
<input type="hidden" name="connectionID" value="$connectionID">
<input type="hidden" name="gb" value="$number">
<input type="hidden" name="end">
<input type="Submit" value="Löschen" onClick="MachKlein2()" style="background-color:000000; border: 2 outset #555555; font-family:Verdana; color:FFFFFF; font-size:8pt; width: 100px; text-align: center;">
</form
</body>
</html>
Guten Morgen Thorsten,
ich kann da auch nix mehr entdecken. Habe es extra nochmal ausprobiert und die Umwandlung der Variablen gbname funktioniert einwandfrei. Auf andere Variablen hast Du die Funktion ja nicht angewandt. Ist das vielleicht der Fehler?
Außerdem könntest Du die Umwandlung doch auch auf dem Server vornehmen, oder? Das wäre der richtige Platz dafür.
Scheint ja PHP im Einsatz zu sein. da gibt es die Funktion strtolower().
Gruß
Tom
Hallo Thorsten,
Genauso hab ich es nun eingebaut, leider gibt es immer noch das Problem, dass er im zweiten (MachKlein2 ()) immer noch nicht die Grossschreibung in Kleinschreibung umwandelt, irgendwie verstehe ich den Fehler selber nicht.
ich hätte eine Erklärung anzubieten:
dieses Formular, enthält sichtbare Felder:
<form name="gbook" action="http://xxxxxx/GB" method="get" target="Thorsten.htm">
<textarea name="input" style="background-color:000033; border: 2 font-family:Verdana; color:FFFFFF; font-size:8pt; width: 400px; height: 100px;"></textarea>
<input type="Submit" value="Abschicken" onClick="MachKlein()" style="background-color:000000; border: 2 outset #555555; font-family:Verdana; color:FFFFFF; font-size:8pt; width: 400px; text-align: center;">
</form>
dieses Formular nicht
<form name="dgb" action="http://xxxxxx/GB" method="get" target="Thorsten.htm">
<input type="Submit" value="Löschen" onClick="MachKlein2()" style="background-color:000000; border: 2 outset #555555; font-family:Verdana; color:FFFFFF; font-size:8pt; width: 100px; text-align: center;">
</form
beiden Formularen ist gleich, dass du den Button Submit klickst, welches im Regelfall dazu führt, dass das Formular abgeschickt wird.
Gleichzeitig belegst du diesen Button mit einem Eventhandler, welcher Änderungen im Formular vornimmt.
<wildeTheorie class="sehr_spekulativ">
Ich vermute du hast ein Zeitproblem.
Ich schätze der Browser prüft im ersten Formular ob Änderungen vorgenommen wurden. Vor dem Abschicken hat der Eventhandler noch Zeit zu handeln.
Im zweiten Formular gibts nichts sichtbares, also gleich ab damit. Der Eventhandler hat keine Zeit zu wirken. Das Formular wird abgeschickt ==> daher Fehlermeldung ==> Formular existiert ja nicht mehr.
</wildeTheorie>
Abhilfe:
Belege nicht den Button Submit mit der Funktion, sondern den Eventhandler onsubmit.
<form name="dgb" action="http://xxxxxx/GB" method="get" onsubmit="MachKlein2();return true" target="Thorsten.htm">
Dann wird auf jeden Fall _vor_ dem Abschicken die gewünschte Funktion ausgeführt.
Trotzdem solltest du die Umwandlung lieber serverseitig durchführen. Da weißt du wenigstens das es auch tatsächlich passiert.
Kleine Frage noch, heißt dein Zielfenster wirklich "Thorsten.htm" ?
Im target wird der Fenstername nicht die Zielseite angegeben.
Viele Grüße
Antje