Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Selezionare N checkbox e cambiare colore alle righe

    Salve,
    Ho due funzioni che non riesco ad integrare tra di loro: la prima funzione "checka" tutti i checkbox di un form; la seconda invece, appicata ai singoli checkbox, cambia il colore della riga a seconda delo status del checkbox stesso

    Prese separatamente, funzionano benissimo: il problema si ha quando seleziono/deseleziono tutti i checkbox con la prima funzione: chiaramente, le righe non cambiano di colore...

    Ho approntato una pagina he descrive meglio il tutto:

    http://www.ivansweb.com/select.htm

    Come posso integrare le due cose?
    Grazie in anticipo per le risposte :-)
    Home: http://www.ivansweb.com
    Le mie applicazioni gratuite in ASP
    · IWGallery
    · IWNewsletter
    · IWMessenger
    · IWGuestbook

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non e` semplice integrare i due. Molto piu` semplice e` inserire il tag di colorazione nella tua funzione Checkall().
    codice:
    function CheckAll(form1){
      for (var i=0; i<form1.elements.length; i++) {
        var e = form1.elements[i];
        if (e.name != 'SelectAll'){
          e.checked = form.SelectAll.checked;
          var n = e.id;
          n = n.replace(/Nome/, "Riga");
          document.getElementById(n).style.backgroundColor='yellow';
        }
      }
    }
    Nota che ho sfruttato il fatto che in ogni riga l'id della riga e` RigaXX e il corrispondente checkbox e` NomeXX (con XX la stessa stringa).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    funziona! ho dovuto cambiare i vari "form1" con "form" nello script, ma così va meglio!
    non vorrei abusare, ma avrei altre due domande:

    1. quando DEseleziono il checkbox che seleziona tutto, le righe rimangono gialle: come posso integrare lo script per ripristinarle bianche?
    2. posso "parametrizzare/variabilizzare" i nomi "Nome" e "Riga" nello script, in maniera da passarli alla funzione come argomenti, e rendere più flessibile lo script?

    Il nuovo file è allo stessoURL del precedente:

    http://www.ivansweb.com/select.htm

    Grazie ancora
    Home: http://www.ivansweb.com
    Le mie applicazioni gratuite in ASP
    · IWGallery
    · IWNewsletter
    · IWMessenger
    · IWGuestbook

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    form e` parola riservata nel DOM, per cui non e` igienico usarla come variabile.

    codice:
    function CheckAll(form1,rr,nn){
      var tog = form.SelectAll.checked;
      for (var i=0; i<form1.elements.length; i++) {
        var e = form1.elements[i];
        if (e.name != 'SelectAll'){
          e.checked = tog;
          var n = e.id;
          n = n.replace(nn, rr);
          document.getElementById(n).style.backgroundColor = tog ? 'yellow' : 'white';
        }
      }
    }
    Dovrebbe funzionare anche il replace, ma non sono sicurissimo

    Forse occorre inserire all'inizio:
    nn = "/"+nn+"/";
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Caspita, ci siamo quasi...
    Mi fa un effetto "strano" (il giallo viene tolto/messo solo attorno al checkbox, non sull'intera riga), però la strada mi sembra quella giusta...

    Mich_, grazie infinitamente per la pazienza... se solo ci capissi di più di JavaScript non romperei a destra e a manca...

    http://www.ivansweb.com/select.htm
    Home: http://www.ivansweb.com
    Le mie applicazioni gratuite in ASP
    · IWGallery
    · IWNewsletter
    · IWMessenger
    · IWGuestbook

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il problema ora non e` JS, ma i CSS.

    Stai usando attributi dei tag che non sono compatibili con i CSS (che vengono usati invece nel JS).

    Dovresti togliere tutti gli attributi di formattazione (width, border, cellpadding, cellspacing, bgcolor, ...) e spostarli nel CSS.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.