HTML Warum funktioniert es nicht ein attribut zu setzen?

obilaner

Lt. Junior Grade
Registriert
Apr. 2011
Beiträge
389
Hallo.

Aufgrund des Umfangs der betreffenden Codeabschnitte poste ich nur das relevante.

Hier mein Problem:
Wenn ich die funktion aufrufe wird immer, bei jedem einzigen Aufruf der Inhalt von pub korrekt ausgegeben. Wenn ich die Funktion (Nach dem Laden eines dritten Projektes) jedoch das dritte mal aufrufe ist pub in alert immer noch was es sein soll, aber es wird nicht mehr korrekt als attribut gesetzt. Dies wird ab dem dritten aufruf ignoriert. Was könnte da schieflaufen?

In der Konsole ist alles unauffällig

Pub wird am anfang meines codes leer deklariert und dann am ende des ausführens der lade funktion korrekt mit dem inhalt aus einem ajax antwort json objekt zugewiesen. Um eine Latenz auszuschliessen habe ich mal einen Timeout zum verzögern des codes unten versucht, doch das ändert nichts.

'
Code:
function setbeschreibungsfeld(){
    alert(pub);
 
        $("#inputbeschreibung").val(titel);
        if(pub =="false"){
            $("#checkboxpub").attr("checked",false);
        }else if(pub == "true"){
            $("#checkboxpub").attr("checked",true);
        }
 
 
}

Nachtrag: Ich habe den Code vereinfacht auf:
Code:
console.log(pub);
$("#inputbeschreibung").val(titel);
$("#checkboxpub").prop("checked", pub);
In der Konsole kommt bei 2 aufrufen korrekt einmal true (für markiert) und einmal false (für nicht markiert)

Die Checkbox bleibt dauerhaft markiert, statt irgendwas zu verändern. Ich hatte if / else zuerst gewählt damit ich bool mit =="false/true" umgehen kann, um Fehler auszuschliessen von der Kette: Auslesen Attribut, speichern in db.tabelle.pub , auslesen und zurücksenden, setzen true/false je nach dem

Edit: Nachdem ich die korrekte abfrage von if else nochmal probiert habe und jedesmal ja rauskam hab ich .attr() zu .prop() geändert. Jetzt läuft es.

Kann Close
 
Zuletzt bearbeitet:
P.S.: Das ist kein HTML :)
 
Zurück
Oben