Tablet - Button funkt net

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,


    bin gerade dabei ein Tablet zu bearbeiten.

    Die HTML Seite funktioniert ohne Probleme, das Hauptproblem ist nur, dass der Button oder meine Funktion nicht funktioniert..


    Clientside:

    Code: function FactionManagerSetRankName
        function FactionManagerSetRankName(rankId, htmlElem) {
            if (rankId <= 0 || htmlElem == null || htmlElem == undefined) return;
            var inputElem = $(htmlElem).parent().find("input");
            var inputVal = $(inputElem).val();
            if (inputVal == "" || inputVal == "") return;
            alt.emit("Client:Tablet:FactionManagerSetRankName", rankId, inputVal);
        }
    Code: for schleife
            for(var i in rankArray) {
                factionManagerRankNameHTML += `<li class='list-group-item'><div class='container left'><p><b>Rank-ID</b></p><p>${rankArray[i].rankId}</p></div>` +
                    `<div class='container mid'><p><b>Rangname</b></p><p>${rankArray[i].rankName}</p></div><div class='container right'><p><b>Neuer Rankname</b></p><input type='text' placeholder='Neuer Rankname...' spellcheck='false'>` +
                     "<button onclick='FactionManagerSetRankName(" + rankArray[i].rankId + ", this);' type='btn' style='margin-top: 0; padding: .08rem .5rem;' class='btn btn-sm btn-factionManagerHov'>Setzen</button></div></li>";
            }


    Serverside:

    Code: GetFactionName
            public static string GetFactionRankName(int factionId, int rankId)
            {
                if (factionId == 0 || rankId == 0) return "";
                var factionRankData = ServerFactionRanks_.FirstOrDefault(x => x.factionId == factionId && x.rankId == rankId);
                if(factionRankData != null)
                {
                    return factionRankData.name;
                }
                return "";
            }


    Ich weiß leider auch nicht wo der Fehler ist, habe auch extra eine Abfrage gemacht wo abgefragt wird wenn man "test" ins Input eingibt, dass eine Meldung erscheint, er spricht aber Serverside nichts an..


    Eventuell kann mir ja einer helfen :thumbup:


    e/ Fehler gefunden, danke an LeonMrBonnie das mit Webview.on hat geholfen.

    Einmal editiert, zuletzt von Kamisama ()

  • Für besser lesbaren Code der auch modern ist empfehle ich dir einige Sachen:

    1. let statt var
    2. Bei einem Array for of statt einem for in Loop
    3. Teilweise jQuery, teilweise Elemente in einem String. Lass jQuery komplett weg und verwende document.createElement um Elemente zu erstellen

    Und dein Problem ist, dass alt.emit in der WebView das Event an den Client schickt, nicht an den Server. Du musst das Event also mit webview.on abfangen, und von da aus dann an den Server mit alt.emitServer senden.

  • Beitrag von Kamisama ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: fixed ().