jQuery iPhone-Style Checkboxen von außen steuern

Sprint

Erfahrenes Mitglied
Hallo zusammen,

ich benutze recht gerne diese etwas älteren iPhone Style Checkboxen, da sie auch individuell beschriftet werden können. https://github.com/tdreyno/iphone-style-checkboxes

Jetzt stehe ich vor folgenden Problem. Ich habe da ein paar Checkboxen, die bei Bedarf vom Nutzer selbst über eine normale Checkbox gesperrt werden können, falls sie nicht gebraucht werden. Über eine normale JS Funktion funktioniert es zwar, das disabled einzufügen und die Schalter lassen sich dann auch nicht mehr betätigen. Allerdings bleiben diese Schalter dann in dem jeweils aktuellen Stand stehen und auch die Optik entspricht nicht der eines gesperrten Schalters. Das kommt erst, wenn das Formular später neu aufgerufen wird.

So sieht das ganze jetzt aus:
Javascript:
$(window).load(function() {
    $('.on_off :checkbox').iphoneStyle({ checkedLabel: 'ja', uncheckedLabel: 'nein' });
    $('.disabled :checkbox').iphoneStyle();

    var onchange_checkbox = ($('.onchange :checkbox')).iphoneStyle({
        onChange: function(elem, value) {
            $('span#status').html(value.toString());
        }
    });
});
function faxoff(){
    if (document.getElementById('nofax').checked == true){
        document.getElementById('faxheader').disabled = true;
    }else{
        document.getElementById('faxheader').disabled = false;
    }
}
function kautoff(){
    if (document.getElementById('nokaut').checked == true){
        document.getElementById('kaution').disabled = true;
        document.getElementById('kaution_sig').disabled = true;
    }else{
        document.getElementById('kaution').disabled = false;
        document.getElementById('kaution_sig').disabled = false;
    }
}
HTML:
<div class="on_off" style="float: left;"><input type="checkbox"<?php if($kvcheck['faxheader'] == '1') echo ' checked'; if($kvcheck['faxheader'] == '2') echo ' disabled'; ?> id="faxheader" name="faxheader" value="1"></div>
<label for="nofax"> keine Faxübertragung<input type="checkbox" id="nofax" name="nofax" value="1" style="margin-left: 30px;" onclick="faxoff();" <?php if($kvcheck['faxheader'] == '2') echo ' checked'; ?>></label>

Wie gesagt, prinzipiell funktioniert es über die faxoff() bzw. nokaut(), nur wäre es optisch einfach besser, wenn der User gleich eine Rückmeldung bekäme, daß die betroffenen Schalter tatsächlich ausgeschaltet und gesperrt sind.

Kann mir jemand sagen, wie das bewerkstelligt werden kann?

Danke schon mal,
Sprint
 
hi
auch die Optik entspricht nicht der eines gesperrten Schalters. Das kommt erst, wenn das Formular später neu aufgerufen wird.

probier mal
Javascript:
function faxoff(){
    if ($('#nofax').is(":checked")){
        $('#faxheader').prop({disabled: true});
    }else{
        $('#faxheader').prop({disabled: false});
    }
    $('.on_off :checkbox').iphoneStyle("refresh");
}
warum nicht jquery verwenden, wenn du es eh schon eingebunden hast?
 
Zuletzt bearbeitet:
Zurück