RadioButton per JS aktivieren: Logikfehler?

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
also in etwa so:
Javascript:
$(document).ready(function() {
        
    restoreContents();
    
    $('#edit').bind('click', toggleEditContent);
    $('#clear').bind('click', resetContent);
    
    function saveContents() {
        var rbIsClicked = $('#rbIsClicked').html();
        localStorage['rbIsClicked'] = rbIsClicked;
    }
    
    function restoreContents() {
        var myrbIsClicked = localStorage['rbIsClicked'];
        if (myrbIsClicked != undefined) {
            $('#rbIsClicked').html(myrbIsClicked);
        }
    }
    
    function toggleEditContent(e) {
        if ($('#rbIsClicked').attr('contenteditable') == 'false') {
            $('#rbIsClicked').attr('contenteditable', 'true');
            $('#edit').val('Speichern');
            $('#rbIsClicked').focus();
        } else {
            $('#rbIsClicked').attr('contenteditable', 'false');
            $('#edit').val('Bearbeiten');
            saveContents();
        }
    }
    
    function resetContent(e) {
        localStorage.clear();
        window.location.reload();
    }   
});
 
Zuletzt bearbeitet:
Hast Du das getestet? Einiges leuchtet mir nämlich nicht ein.
Ich stelle mir das Speichern und Einlesen eher so vor:
Code:
        function saveContents() {
            var rbIsClicked = $("input[type='radio'][name='rad']:checked");
            if (rbIsClicked.length != 0) localStorage['rbIsClicked'] = rbIsClicked.attr("id");
        }
        function restoreContents() {
            var rbIsClicked = localStorage['rbIsClicked'];
            if (rbIsClicked != undefined) {
                $('#' + rbIsClicked).attr('checked', true);
            }
        }
        $("input[type='radio'][name='rad']").on("change", saveContents);
        restoreContents();
 
Na ja, damit wollte ich eigentlich nur das Prinzip von Local Storages aufzeigen, ohne direkt den Kontext auf die Radio Buttons zu legen. Im übrigen habe ich mich dafür entschieden, Deine local Storage Lösung zu nehmen, da sie meinem Grundverständnis entspricht: PHP ist für den Server zuständig, JS für den Client;)
Javascript:
 <script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="crossorigin="anonymous"></script>
.
.
<div>
  <input type="radio" name="rad" id="dummy1" value="frontOf">vor
  <input type="radio" name="rad" id="dummy2" value="back">zurück
</div>
.
.
<script>
        function saveContents() {
            var rbIsClicked = $("input[type='radio'][name='rad']:checked");
            if (rbIsClicked.length != 0)
                localStorage['rbIsClicked'] = rbIsClicked.attr("id");
        }
        function restoreContents() {
            var rbIsClicked = localStorage['rbIsClicked'];
            if (rbIsClicked != undefined) {
                $('#' + rbIsClicked).attr('checked', true);
            }
        }
        $("input[type='radio'][name='rad']").on("change", saveContents);
        restoreContents();
</script>
 
Zuletzt bearbeitet:
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…
Zurück