Dokument ändern

kle-ben

Erfahrenes Mitglied
Hi,
ich habe ein Formular das vor Versand auf Korrektheit geprüft wird.
Nun will ich bei falschen oder fehlenden Eingaben die aktuelle Seite
ändern so das über dem Formular steht was falsch ist oder fehlt.
Hab nur was gefunden wie man über
Code:
document.all.meinElement
auf bestimmte Elemente zugreifen kann, aber das wird vom Firefox
nicht unterstützt. Kann mir vieleicht jemand erklären wie sowas
funktioniert? Ein Tutorial oder ein Tip nach was ich da suchen kann
tuts auch.

Thx

Benny
 
Danke, funktioniert soweit ganz gut.
Allerdings funktioniert es nicht im ie.
Implementiert man dann mehrere scripte oder wie machen
das Seiten die in allen Browsern funktionieren?

Eine Problem hab ich noch was nicht ganz zum Topic passt:

Ich hab ein Objekt und nun will ich in einer Funktion
die dem Objekt zugeordnet ist über alle Elemente
iterieren die keine Funktion sind.
Wie finde ich heraus welches Elemet keine Funktion ist?
mein Objekt :
Code:
function ErrorCodes(){
this.mail = "okay";
this.tel = "okay";
this.fax = "okay";
this.errorOccured = ErrorOccuredEC;
}

function ErrorOccuredEC(){
for( attr in this )
// hier bekomm ich alle elemente auch die Funktion
}

EDIT:

ich hab eine Funktion typeof gefunden die mir zurückgibt
von welchem Typ das Attribut ist. Allerdings ist meine
Funktion angeblich ein string ...?hä?
 
Zuletzt bearbeitet:
Was hat das iterien jetzt mit deinem ursprünglichen Problem zu tun? Was bezweckst du damit?
Wenn es sich bei deiner Funktion um eine Funktion handelt, dann gibt typeof auch "function" zurück. Ansonsten ist es keine Funktion und du hast einen Fehler gemacht.
Javascript:
function Func1() {
    alert('Test');
}

var Func2 = new Function('alert("Test2")');

var strg = "Ich bin ein String";

alert( 
    'Func1 ist:'+ (typeof Func1) +
    '\nFunc2 ist:'+ (typeof Func2) +
    '\nstrg ist:'+ (typeof strg)
);

Egal zu dem Teil, dessen Sinn sich mir erschlossten hat, dam Forumlar:
getElementById() ist ein Bestandteil des Document Object Models (DOM). Als solcher wird es von allen neueren Browsern incl. des IEs unterstützt. Wenn es bei dir nicht funktioniert, hast du falschen Code fabriziert. Deswegen solltest du deinen Code hier posten und nochmal genau sagen, was du machen willst.

So kann ich dir jetzt nur mal ein Beispiel reinstellen:
HTML:
<html><head><title>None</title>

<script type="text/javascript"><!--
    function testForm() {
        obj = document.getElementById('testInput');
        if( obj.value.match(/^\s*$/) ) {
            document.getElementById('Meldungen').firstChild.data = obj.id +'ist leer!';
            return false;
        }
        return true;
    }
//--></script>

</head><body>

    <div id="Meldungen">&nbsp;</div>

    <form><div>
        Test Input:<input type="text" id="testInput" /> (Darf nicht leer sein)
        <input type="submit" value="Abschicken!" onclick="return testForm();" />
    </div></form>

</body></html>
Daraus sollte das Prinzip klar sein. Wenn du ein ganzen Formular prüfen willst, bietet sich natürlich an, die IDs der einzelnen input-Elemente, die geprüft werden sollen durchzunummerieren und dann in einer Schleife durchzugehen so a la: for(i=1; obj=document.getElementById('testInput'+ i); i++) dosomething()
 
Zuletzt bearbeitet:
Ich hab ein Formular welches beim Absenden
überprüft werden soll und bei falschen Eingaben eine
Fehlermeldung im Dokument erzeugt soll.
Die änderung am Dokument soll vorgenommen werden
wenn alles überprüft wurde.
Nicht gültige oder fehlende Sachen will ich mir in meinem
Objekt ErrorCodes merken:
Code:
function ErrorCodes(){

         this.firma = "okay";
         this.ansprechpartner = "okay";
         this.mail = "okay";
         this.tel = "okay";
         this.fax = "okay";
         this.plz = "okay";
         this.zahl=23;
         this.errorOccured = ErrorOccuredEC;
         this.handleError = HandleErrorEC;
}
Meine errorOccured Funktion soll false zurück geben
wenn in allen Strings in ErrorCodes "okay" steht, sonst true.
Im moment sieht sie so aus
Code:
function ErrorOccuredEC(){
         var i = 0;
         for( attr in this ){
              i++;
              alert( typeof(attr) + " " + i );
         }
         return true;
}

Bei der Ausführung bekomm ich 9 msgboxen angezeigt.
Und in jeder steht "string x"

Im ie funktioniert es jetzt auch, JS war nur nicht aktiviert. ( Benutz das ding ja nie ^^ ).

Danke soweit schon mal,

Benny
 

Neue Beiträge

Zurück