2 Stimmen

Prüfen innerhalb des div-Tags mit innerhtml in Javascript?

Ich versuche, ein Anmeldeformular mit Ajax-Validierungsprüfung zu erstellen. Validierungsprüfung ist OK. Ich mache es zeigen ein cross.png Bild, wenn es ein Problem über ein Feld auf dem Formular ist.

Aber was ich als Nächstes tun möchte, ist, die Besucher das Anmeldeformular nicht anwenden zu lassen, wenn es ein Problem gibt.

Ich habe versucht, nach Fehlern zu suchen, indem ich

if(document.getElementById('username_error_icon').innerHTML!='<img src="cross.png" width="15" height="15" />'){
document.form1.submit();    
}

was nicht funktioniert hat :/ Ich bin offen für Vorschläge bitte helfen Sie :/

1voto

HoLyVieR Punkte 10735

Der genaue innerHTML-Wert eines Elements ist nicht in allen Browsern gleich. Sie sollten sich nicht darauf verlassen. Einige Browser ordnen die Reihenfolge der Attribute neu an und schreiben den Pfad des "src" um.

Sie sollten etwas in diese Richtung tun:

function isValid() {
    // Do your test and return true/false
}

// ...

function functionWhereYourCodeIs() {
    if (isValid()) {
        document.form1.submit();
    }
}

1voto

Zafer Punkte 2145

Es ist keine gute Idee, so etwas zu validieren und zwei Zeichenfolgen zu vergleichen, die sich ändern können.

Stattdessen empfehle ich Ihnen, eine Variable zu setzen wie bErrOccurred = true wo Sie die Quelle des Bildes auf cross.png setzen und Ihre if-Anweisung dann wie folgt aussehen sollte:

if(!bErrOccurred) {
    document.form1.submit();   
}

1voto

ErVeY Punkte 1464

Falls Sie es trotzdem tun wollen, können Sie Folgendes tun

    <div id="username_error_icon">
        <img id="myValidationImage" src="cross.png" width="15" height="15" />
    </div>

<script type="text/javascript">
    var validationImage = document.getElementById('myValidationImage').src;
    var imageName = validationImage.lastIndexOf('.');
    validationImage = validationImage.substring(validationImage.lastIndexOf('/') + 1, imageName < 0 ? validationImage.length : imageName);
    if (validationImage != "cross")
        document.form1.submit();
    </script>

0voto

Max Abrahamsson Punkte 1450

Ok, wie es scheint, muss ich den gesamten Ajax-Code ändern, um nur das Validierungsergebnis als Variable von php ohne html-Tags usw. zu erhalten.

0voto

Max Abrahamsson Punkte 1450

Ok Problem gelöst. durch Änderung des php-Codes, der Informationen an den Ajax-Code zurückgibt. Ich änderte den php-Code so, dass das Ergebnis der Validierung ohne html-Tag zurückgegeben wird, sondern mit 0 oder 1 oder 2 usw. und dann änderte ich den Javascript-Code, um die richtigen Änderungen in HTML zu machen, die diesen zurückgegebenen Werten gewidmet sind

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X