Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38
  1. #1

    (magari con javascript) bottone di un form disabilitato fino al completamento

    Provo qui, nel forum HTML non ho ricevuto risposte ma credo che con javascript sia possibile... vorrei un bottone "submit" di un form disabilitato fino al completamento...

    http://www.html.it/css/css_14.htm

    ho letto l'articolo di max sui css, e ho pensato: magari è possibile variare l'attributo DISABLED di un bottone in modo che, selezionando un certo numero di checkboxes, il valore dell'attributo stesso muti e sia quindi possibile cliccarci sopra.

    Grazie anticipato.

    _YD

  2. #2
    Avevo pensato a usare setAttribute(attr, valore), ma quello funziona soltanto con gli attributi del tipo bgcolor="blue" (ovvero del tipo attributo="valore").
    Allora mi e' venuto in mente questo trucco schifoso ma che dovrebbe funzionare.
    Metti il bottone dentro un <DIV id="pippo"> e quando si raggiungono le condizioni volute (un certo numero di checkbox selezionati o altro)
    fai un bel

    pippo.innerHTML = "codice";

    dove codice e' appunto il codice per far funzionare il bottone (senza il disabled).

    In pratica sostituisci il bottone disabilitato con uno uguale ma abilitato!
    Per imparare bisogna divertirsi, quindi...
    Buon divertimento!!!

    The Shiny Side Of the Moon
    Un piccolo villaggio di bit sperduto nell'immenso far-web.

  3. #3
    innanzitutto grazie mille x la risposta.

    l'idea non sembra male... è che io non so scrivere una riga di js...

    c'è qualcosa in giro di modificabile secondo queste esigenze?

    _YD

  4. #4
    Mah, di gia' pronto non saprei dove cercarlo...

    se hai tempo fino a domattina, in giornata appena ho un filo di tempo butto giu' un paio di righe e cerco di farlo io un qualcosa di riadattabile che faccia abilitare un bottone dopo X checkbox selezionati. Poi da un esempio gia' fatto penso sia facile modificarlo secondo le tue esigenze!
    Per imparare bisogna divertirsi, quindi...
    Buon divertimento!!!

    The Shiny Side Of the Moon
    Un piccolo villaggio di bit sperduto nell'immenso far-web.

  5. #5
    Certo che ho tempo... e se davvero fai 'sta cosa, non potrò che ringraziarti...

    a risentirci presto, allora

    _YD

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    segui l'esempio ed adattalo alle tue esigenze...

    <script>
    ora=0;
    function scambia(){
    if (ora==0) {
    document.forms[0].bottone.disabled=true;
    } else {
    document.forms[0].bottone.disabled=false;
    }
    ora = (1-ora)
    }
    </script>
    <form><input type=button value="premi" name="bottone"><input type=button onclick="scambia()"></form>

    ciao
    bruno
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    mmm... non ci ho capito un'acca... non mi è chiaro x nulla dove dovrei inserire le condizioni (checkboxes selezionate o meno), cmq ti ringrazio x lo sforzo...

    _YD

  8. #8
    Eccomi qua! Come promesso ho fatto uno scriptino semplice semplice ma riutilizzabilissimo:

    -------------------
    <input type="checkbox" name="ck1" value="check1" onclick="segna(0);contr();">Checkbox 1

    <input type="checkbox" name="ck2" value="check2" onclick="segna(1);contr();">Checkbox 2

    <input type="checkbox" name="ck3" value="check3" onclick="segna(2);contr();">Checkbox 3

    <div id="bottone">
    <input type="button" name="bott" value="clicca" DISABLED>
    </div>
    <script language="javascript">

    var arrValori = new Array(false, false, false);

    function segna(quale)
    {
    arrValori[quale] = !arrValori[quale];
    }

    function contr()
    {
    if((arrValori[0]==true)&&(arrValori[1]==true)&&(arrValori[2]==true))
    {
    bottone.innerHTML="<input type='button' name='bott' value='clicca'>";
    }
    else
    {
    bottone.innerHTML="<input type='button' name='bott' value='clicca' DISABLED>";
    }
    }
    </script>

    ----------------
    Commento:

    in cima ci sono i vai checkbox e sotto il bottone disabilitato.
    Ogni volta che si fa click su un checkbox vengono richiamate le due funzioni segna() e contr().
    Poi c'e' un array che tiene conto dello stato dei checkbox (true=selezionato, false=non selezionato).
    segna() imposta il valore dell'array al contrario dello stato precedente (se era false lo mette a true e viceversa). Questo serve perche' altrimenti se prima si selezionano tutti e tre e poi si deselezionano il bottone resta attivo, mentre come ho fatto io, se clicchi 2 volte sul checkbox (lo selezioni e poi dopo lo deselezioni) il suo stato nell'array corrisponde a quello del checkbox.
    La funzione contr() si occupa di controllare i valori dell'array. Se sono tutti true, ovvero se tutti i checkbox sono selezionati, cambia il contenuto del tag <div> mettendoci il codice per un bottone abilitato. Se poi si deseleziona un qualsiasi checkbox, questa funzione si preoccupa di riscrivere di nuovo l'interno del tag <div> in modo da disabilitare di nuovo il bottone.
    A dirsi sembra difficile ma a farsi e' molto piu' facile. Metti il codice dentro una pagina e guarda che succede.
    Per modificare fai pure altri checkbox, quanti te ne servono, e aggiungi tanti elementi all'array arrValori quanti sono i checkbox da te creati.
    Poi basta soltanto che ai nuovi checkbox associ l'attributo onclick come quello dell'esempio, ma con l'argomento (il numero) della funzione in corrispondenza con un elemento dell'array (ovvero aumenta di uno ogni checkbox in piu' che metti) e aggiungi nella funzione contr() un if come quelli che ci sono gia' (ma con indice incrementato, come al solito) e il gioco e' fatto!

    Se servono ulteriori chiarimenti dimmelo pure
    Per imparare bisogna divertirsi, quindi...
    Buon divertimento!!!

    The Shiny Side Of the Moon
    Un piccolo villaggio di bit sperduto nell'immenso far-web.

  9. #9
    il codice è perfetto e lo hai spiegato davvero molto bene, in modo semplicissimo! se l'ho capito io...

    vorrei sapere se è possibile "associare" alcune checkboxes in modo che sia sufficiente (x l'utente del sito) checkare UNA casella di ciascun "gruppo" di caselle xchè la funzione risulti true e quindi il bottone si abiliti.

    purtuttavia, giusto x fare le cose un po' + difficili , quanto sopra non dovrebbe interessare il valore "name" delle checkboxes, xchè il form serve a spedirmi dati che sono variabili di una pagina in php e dette variabili dipendono appunto dall'attributo "name".
    (dico questo xchè sto già vivendo lo stesso problema qui: http://forum.html.it/forum/showthrea...hreadid=151881

    grazie davvero x aver tenuto fede alla promessa!

    _YD

  10. #10
    Si, si complica un po' il codice ma e' possibilissimo.
    Basta che nella funzione che fa il controllo tu proceda in questo modo.
    Se per ogni gruppo ti basta una solo checkbox, basta che usi un op' di OR e il gioco e' fatto.
    Esempio:

    check1gruppo1
    check2gruppo1
    check3gruppo1

    check1gruppo2
    check2gruppo2
    check3gruppo2

    var arrGruppo1 = new Array(false, false, false);
    var arrGruppo2 = new Array(false, false, false);


    allora la funzione contr() viene cambiata in questo modo

    if( ((arrGruppo1[0]==true)||(arrGruppo1[1]==true)||(arrGruppo1[2]==true)) && ((arrGruppo2[0]==true)||(arrGruppo2[1]==true)||(arrGruppo2[2]==true)) )

    e poi il codice per ativare il pulsante.
    Praticamente l'if e' suddiviso in questo modo:

    if
    (uno qualsiasi del primo gruppo selezionato)
    e
    (uno qualsiasi del secondo gruppo selezionato)
    attiva il bottone

    Visto che hai detto che non hai troppa pratica con il codice, le due barre || sono l'OR, ovvero nel test richiedono che almeno una delle varie condizioni deve essere vera.

    Per il fatto del PHP non saprei come gestirla, dato che ancora manca al mio curriculum ma intendo rimediare al piu' presto...
    Per imparare bisogna divertirsi, quindi...
    Buon divertimento!!!

    The Shiny Side Of the Moon
    Un piccolo villaggio di bit sperduto nell'immenso far-web.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.