Seite 1 von 1

Scriptfehler auf der Seite

Verfasst: 09.02.2005 22:39
von grizzlibaer
Hi,
wenn ich versuche "smilies" einzufügen und ich klicke drauf dann erscheint folgende FM:

Zeile: 109
Zeichen: 17
Fehler: 'document.form.long_desc.createTextRange' ist Null oder kein Objekt
Code: 0

Zeile 109:

Code: Alles auswählen

                if (document.form.long_desc.createTextRange && document.commentform.comment.caretPos)
Der ganze Scriptabschnitt:

Code: Alles auswählen

function emotions(text)
{
                if (document.form.long_desc.createTextRange && document.commentform.comment.caretPos)
                {
                        var caretPos = document.form.long_desc.caretPos;
                        caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
                        document.form.long_desc.focus();
                }
                else
                {
                        document.form.long_desc.value  += text;
                        document.form.long_desc.focus();
                }
}
HTML-Eingabe:

Code: Alles auswählen

<form enctype="multipart/form-data" action="{S_ADD_FILE_ACTION}" method="post" onsubmit="return checkAddForm();">

<textarea rows="6" name="long_desc" cols="32" class="post" style ="border: #445566; border-style: solid; border-width: 1px; width:500px; height:120px;">{FILE_LONG_DESC}</textarea>
Das komische:
Diese Fehlermeldung erscheint im IE.
Im Firefox kann ich "Smilies" einfügen.
Mozilla reagiert überhaupt nicht auf einen Klick mit der Maus :(

Hat jemand ne Ahnung was falsch ist?
gruß
grizzli

Re: Scriptfehler auf der Seite

Verfasst: 09.02.2005 23:14
von Blutgerinsel
grizzlibaer hat geschrieben:Hi,
Hat jemand ne Ahnung was falsch ist?
Wie die Fehlermeldung schon unmißverständlich miteilt versucht der Herr auf nicht bestehendes Objekt zu referenzieren.

Wird kein Formularname explizit übergeben bekommt das Formular eine fortlaufende Nr. zugeteilt forms[0]......

Da das Formular nicht form heisst wird das Objekt nicht gefunden ganz einfach..... :roll:

Das kann man alles nachlesen -> http://de.selfhtml.org/javascript/objekte/forms.htm

Verfasst: 09.02.2005 23:56
von grizzlibaer
Danke Blutgerinsel,
was würde ich ohne Dich tun :-?
Auf dieser Seite war ich schon, und ich habe keine Ahnung was die meinen. Ich bin immer auf der Suche bevor ich poste. Das etwas mit dem Formularnamen nicht stimmt, kann ich noch in etwas rauslesen. Wäre echt klasse könntest Du mir mitteilen wo ich etwas hinzufügen (insbesondere was) oder nur verbessern muß.

Ich geb es zu. Ich hab mit Scriptcode so meine liebe Not. Hört sich vielleicht bescheuert an ist aber eine Tatsache :roll:

Ich wäre Dir sehr dankbar
gruß
grizzli

Verfasst: 10.02.2005 00:25
von Blutgerinsel
füg mal im <form> tag noch name="form" ein.....
das sollte genügen....

Ergebnis ?

Verfasst: 10.02.2005 16:42
von grizzlibaer
Das gleiche :(

Hier mal der Code der für alles zuständig ist mit Eingabefelder usw.
Hier das komplette Script auf der Seite:

Code: Alles auswählen

<script language="JavaScript" type="text/javascript">
<!--
	function checkAddForm() 
	{
		error_msg = "";
		if (document.form.cat_id.value == -1)
		{
			error_msg = "{LINK_CAT_NOT_ALLOW}";
		}

		if({ALLOW_GUEST} && document.form.post_username.value == "")
		{
			if(error_msg != "")
			{
				error_msg += "\n";
			}
			error_msg += "{LINK_GUEST_FIELD}";
		}
		
		if(document.form.name.value == "")
		{
			if(error_msg != "")
			{
				error_msg += "\n";
			}
			error_msg += "{LINK_NAME_FIELD}";
		}
		
		if(document.form.link_url.value == "" || document.form.link_url.value == "http://")
		{
			if(error_msg != "")
			{
				error_msg += "\n";
			}
			error_msg += "{LINK_URL_FIELD}";
		}
		
		if(document.form.link_logo_src.value == "")
		{
			if(!{ALLOW_NO_LOGO})
			{
				if(error_msg != "")
				{
					error_msg += "\n";
				}
				error_msg += "{LINK_LOGO_FIELD}";
			}
		}
		
		if(document.form.long_desc.value == "")
		{
			if(error_msg != "")
			{
				error_msg += "\n";
			}
			error_msg += "{LINK_LONG_DES_FIELD}";
		}
		
		if(error_msg != "")
		{
			alert(error_msg);
			error_msg = "";
			return false;
		}
		else
		{
			return true;
		}
	}
	
function emotions(text)
{
                if (document.form.long_desc.createTextRange && document.commentform.comment.caretPos)
                {
                        var caretPos = document.form.long_desc.caretPos;
                        caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
                        document.form.long_desc.focus();
                }
                else
                {
                        document.form.long_desc.value  += text;
                        document.form.long_desc.focus();
                }
}
	
// -->
</script>
Ich hab jetzt auch festgestellt, das wenn die Pflichtfelder wie Name, Beschreibung, URL, Dein Name nicht ausgefüllt werden, das Formular trotzdem abgeschickt wird. Obwohl eine Info kommen müsste das man das Feld ausfüllen muß.
Das ganze betrifft nur den IE und den Mozilla. Firefox macht alles so wie es sein sollte. :(
gruß
grizzli

Verfasst: 10.02.2005 17:54
von Blutgerinsel
Der geparste Templatecode ist ok ?

verwende am besten diese Schreibweise evtl. macht der teilweise auftretende Underscore Probleme:

Code: Alles auswählen

document.forms['formularname'].elements['feldname'].Eigenschaft