Ergebnis 1 bis 3 von 3
  1. #1
    Arnie ist offline Grünschnabel
    registriert
    10-03-2016
    Ort
    Leipzig
    Beiträge
    2

    Ajax funktioniert nur mit alert

    Hallo liebe User, ich hoffe Ihr könnt mir weiterhelfen.
    Ich habe eine Login seite, die die Logindaten mit Ajax weiter sendet. Zur zeit funktioniert dies aber nur wenn ein Alert dazwischen steht. Ich habe schon ähnliche Fehler gesucht und gefunden aber ich kann die Lösungen nicht adaptieren. Jetzt hoffe ich, dass ihr mir den Fehler erklären könnt und mir sagt/zeigt wie man diesen verhindern kann.

    Zur veranschaulichung hier der Code:

    Code:
    @import models.db.Studiengang
    
    @(loggedIn: String)(studiengaenge: List[String])
    
    @main("Login"){
    
        <div class="title">
            <h1>Campusduell</h1>
        </div>
    
        <div class="container">
            <div class="card"></div>
            <div class="card">
                <h1 class="title">Login</h1>
                <form>
    
                    <div class="input-container">
                        <input type="text" id="loginUsername"/>
                        <label for="loginUsername">Nutzername</label>
                        <div class="bar"></div>
                    </div>
    
                    <div class="input-container">
                        <input type="password" id="loginPassword"/>
                        <label for="loginPassword">Passwort</label>
                        <div class="bar"></div>
                    </div>
                    <div class="button-container">
                        <button id="login"><span>anmelden</span></button>
                    </div>
                </form>
            </div>
    
            <div class="card alt">
                <div class="toggle"></div>
                <h1 class="title">Registrierung
                    <div class="close"></div>
                </h1>
                <form>
                    <div class="input-container">
                        <input type="text" id="registUsername"/>
                        <label for="registUsername">Nutzername</label>
                        <div class="bar"></div>
                    </div>
                    <div class="input-container">
                        <input type="password" id="registPassword"/>
                        <label for="registPassword">Passwort</label>
                        <div class="bar"></div>
                    </div>
                    <div class="input-container">
                        <input type="password" id="controlPassword"/>
                        <label for="controlPassword">Kontroll-Passwort</label>
                        <div class="bar"></div>
                    </div>
                    <div class="input-container">
                        <input type="text" id="email"/>
                        <label for="email">E-Mail</label>
                        <div class="bar"></div>
                    </div>
    
    
                    <div class="input-container">
                        <div class="Registrierung">
                            Geschlecht:
                            <select id = "geschlecht">
                                <option value="1" selected>M</option>
                                <option value="2" selected>W</option>
                            </select><br><br>
                            Studiengang:
                            <select id = "studiengang">
                                @for(studiengang <- studiengaenge){
                                   <option value = @studiengang selected> @studiengang </option>
                                }
                            </select>
                        </div>
                    </div>
    
                    <div class="button-container">
                        <button id = "validation"><span>Los geht's</span></button>
                    </div>
                </form>
            </div>
        </div>
    
    
        
    
        <script>
    
                checkLoggedIn(@loggedIn);
    //            Dieser Code bewirkt, dass die Navigationsleiste nicht angezeigt wird
                document.getElementById("navigationsleiste").style.visibility = "hidden";
    
    
                var username;
                var password;
                var email;
                var geschlecht;
                var studiengang;
                var result;
    
                $("#validation").click(function(){
                    username = $("#registUsername").val();
                    password = $("#registPassword").val();
                    email = $("#email").val();
                    geschlecht = $("#geschlecht").val();
                    studiengang = $("#studiengang").val();
                    sendRegister(username, password, email, geschlecht, studiengang);
                });
    
                $("#login").click(function(){
                    username = $("#loginUsername").val();
                    password = $("#loginPassword").val();
                    sendLogin(username, password);
                    // alert("Mit diesem alert funkioniert es.")
                });
    
    
                $('.toggle').on('click', function() {
                    $('.container').stop().addClass('active');
                });
    
                $('.close').on('click', function() {
                    $('.container').stop().removeClass('active');
                });
    
        </script>
    }
    Auch den von der ausgelagterten login.js möchte ich euch nicht vorenthalten, falls da der Fehler ist

    Code:
     function sendRegister(username, passwort, email, geschlecht, studiengang){
    
                $.ajax({
                    url: '/registration',
                    method: 'POST',
                    data: JSON.stringify({
                        "username": username,
                        "passwort": passwort,
                        "email": email,
                        "geschlecht": geschlecht,
                        "studiengang": studiengang,
                    }),
                    success: function(data){
                        $('#result').text("Success");
                    },
                    error:function(data){
                        $('#result').text("Failure");
                    },
                    dataType: 'json',
                    contentType: 'application/json'
                });
                return false;
            }
    
            function sendLogin(username, passwort, loggedIn){
    
                $.ajax({
                    url: '/login',
                    method: 'POST',
                    data: JSON.stringify({
                        "username": username,
                        "passwort": passwort,
                    }),
                    success: function(data){
                        $('#result').text("success");
    
                    },
                    error:function(data){
                        $('#result').text("Failure");
                    },
    
                    dataType: 'json',
                    contentType: 'application/json'
                });
                    return false;
                    }
    
    
            function registrieren(){
    
            function vergleichPasswort(registPassword, controlPassword) {
                return (registPassword == controlPassword)
                    ? true : alert("Das Passwort wurde richtig eingegeben!")
                    ? false : alert("Die Passwörter sind nicht identisch");
    
            }
    
            function passwort(form) {
                if(vergleiche("batman", form.pass.value))
                    alert("das Passwort wurde richtig eingegeben!");
                else {
                    alert("das Passwort ist falsch!");
                    form.pass.select();
                    form.pass.focus();
                }
            }
    
            }
    
            /*
             Diese Funktion checkt, ob der User schon eingeloggt ist
             Wenn ja und er ist auf der Login Seite -> Home seite geleitet
             Wenn nein und er ist nicht auf der Login Seite -> Login seite geleitet
              */
            function checkLoggedIn(login){
                var site = window.location.pathname;
    
                if(site != "/login" && login != "1"){
                    alert("Der User ist nicht eingeloggt und wird zur Login-Seite weitergeführt!");
    
                    window.location = "/login";
                }
                else if(site == "/login" && login == "1"){
                    window.location = "/home";
                }
            }
    Ich hoffe ihr könnt mir helfen.

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.631

    AW: Ajax funktioniert nur mit alert

    *freigeschaltet*
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  3. #3
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.678

    AW: Ajax funktioniert nur mit alert

    Entferne mal die <form>s (sind sowieso nicht funktional) oder gib' deinen <button>s ein type="button".

    PS: Warum arbeitest du mit globalen Variablen?
    PPS: Bei einem JS-Problem ist immer ratsam, den Quelltext, der auch beim Browser ankommt, zu zeigen und nicht den Code für irgendeine Templateengine.

Ähnliche Themen

  1. [FRAGE] Ajax-Script funktioniert nur mit einem Alert dazwischen...
    Von thordirk im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 02-12-2014, 15:29
  2. AW: Skript funktioniert nur mit alert
    Von Bluescreen im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 28-06-2011, 09:13
  3. Skript funktioniert nur mit alert
    Von WilliT im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 25-06-2011, 14:10
  4. alert funktioniert nicht mit firefox
    Von aldra13 im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 12-03-2010, 01:20
  5. Ajax - Kein Alert als requestergebnis.
    Von zZap im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 18-08-2006, 16:00

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •