Visualizzazione risultati 1 fino 6 di 6

Discussione: Forzare checkbox

  1. #1
    Guest

    Predefinito Forzare checkbox

    Ciao a tutti, in una mia pagina ho inserito due checkbox (A e B), è possibile implementare questa funzione:

    Se A è "checcato" allora B è "checcato", se B non è "checcato" allora A non è "checcato"???

    Grazie a tutti

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    A parte che per fare questo puoi benissimo usare i radio button.

    Ad esempio, i radio button, con stesso attributo name, si verifica l'effetto che vuoi te, ma se hai la necessità di usare i checkbox ti faccio un semplice esempio.

    Puoi modificare entrambi i checkbox in questo modo:

    Codice HTML:
    <input type="checkbox" id="a" onclick="document.getElementById('b').checked = false;"/>
    <input type="checkbox" id="b" onclick="document.getElementById('a').checked = false;"/>
    Che in poche parole fa quello che vuoi te, ma io ti consiglierei, come già detto, di usare i radio button, visto che l'utente che esegue lo script può avere javascript disattivato o cmq il controllo sul codice dello script, nel caso l'esecuzione del tuo script dovrai farla avvenire in qualche modo.
    Ultima modifica di sevenjeak : 09-08-2011 alle ore 12.24.32

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Non posso usare i radio button in quanto gli input possono essere:

    1) Entrambi checcati
    2) Entrambi non checcati
    3) A checcato B non checcato

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,760

    Predefinito

    puoi spiegare meglio cosa vuoi fare?

    leggendo:
    Se A è "checcato" allora B è "checcato", se B non è "checcato" allora A non è "checcato"???
    Prova così:
    Codice HTML:
    <input type="checkbox" id="a" onclick="document.getElementById('b').checked = true;" />
    <input type="checkbox" id="b" onclick="document.getElementById('a').checked = false;" />
    ...comunque, come detto da sevenjeak, se il visitatore ha js disabilitato, l'effetto non funziona...

    Ciao!
    Ultima modifica di alemoppo : 09-08-2011 alle ore 15.09.53

  5. #5
    Guest

    Predefinito

    Ok scusate, non ci siamo capiti.

    Praticamente devo evitare lo stato (A non checcato e B checcato).

    Prima di inserire faccio un controllo php quindi non ci sono problemi.

    Non posso usare la funzione onclick xk non conosco lo stato "0" dei checkbox.

  6. #6
    Guest

    Predefinito

    Ciao scusate se riesumo questa conversazione ma credo di aver finalmente identificato il problema.

    Come vi avevo detto questi sono i miei due checkbox:

    Codice:
    <input type='checkbox' name='check-security_1' id='check-security.1' data-on='Attivato' data-off='Disattivato'/>
    
    <input type='checkbox' name='check-security_2' id='check-security.2' data-on='Attivato' data-off='Disattivato'/>
    Il codice che mi avevate datto era assolutamente corretto, il problema è che i checkbox sono già gestiti da un altro script.


    (function($){
    $.fn.tzCheckbox = function(options){

    // Default On / Off labels:

    options = $.extend({
    labels : ['ON','OFF']
    },options);

    return this.each(function(){
    var originalCheckBox = $(this),
    labels = [];

    // Checking for the data-on / data-off HTML5 data attributes:
    if(originalCheckBox.data('on')){
    labels[0] = originalCheckBox.data('on');
    labels[1] = originalCheckBox.data('off');
    }
    else labels = options.labels;

    // Creating the new checkbox markup:
    var checkBox = $('<span>',{
    className : 'tzCheckBox '+(this.checked?'checked':''),
    html: '<span class="tzCBContent">'+labels[this.checked?0:1]+
    '</span><span class="tzCBPart"></span>'
    });

    // Inserting the new checkbox, and hiding the original:
    checkBox.insertAfter(originalCheckBox.hide());

    checkBox.click(function(){
    checkBox.toggleClass('checked');

    var isChecked = checkBox.hasClass('checked');

    // Synchronizing the original checkbox:
    originalCheckBox.attr('checked',isChecked);
    checkBox.find('.tzCBContent').html(labels[isChecked?0:1]);
    });

    // Listening for changes on the original and affecting the new one:
    originalCheckBox.bind('change',function(){
    checkBox.click();
    });
    });
    };
    })(jQuery);

    Codice:
    $(document).ready(function(){
    	
    	$('input[type=checkbox]').tzCheckbox({labels:['Enable','Disable']});
    });
    Potete per favore aiutarmi a finire lo script?

    Grazie
    Ultima modifica di alemoppo : 23-08-2011 alle ore 12.31.09 Motivo: Testo fuori da [code]

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •