Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001

    Abilita/disabilita checkbox

    ciao, non riesco a realizzare un controllo sui checkbox.

    Ho una tabella che viene valorizzata dai dati presi dal DB, questi possono essere pochi o tanti non conosco il numero totale delle righe della tabella quando viene visualizzata nella pagina.

    In una cella c'è una checkbox, ora dovrei fare il controllo che se metto il flag ad un checkbox gli altri si devono disabilitare.

    C'è un modo anche con jquery per realizzare questo controllo?

    Grazie.
    Vola solo chi ha il coraggio di farlo

  2. #2
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    Dunque se non ho capito male vorresti emulare un po quello che fa l'input radio, dando la possibilità di selezionare un solo elemento per volta ?

  3. #3
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    Quote Originariamente inviata da ninja72 Visualizza il messaggio
    Dunque se non ho capito male vorresti emulare un po quello che fa l'input radio, dando la possibilità di selezionare un solo elemento per volta ?
    Esatto, non posso usare I radio purtroppo
    Vola solo chi ha il coraggio di farlo

  4. #4
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    vedi se funziona in questo modo :

    codice:
    const cboxs = document.querySelectorAll('input[type="checkbox"]')
                cboxs.forEach((cbox) => {
                    cbox.addEventListener("click", () => {
                        cboxs.forEach((e) => {
                            if (e !== cbox) {
                                e.checked = false
                            }
                        })
                    })
                })

  5. #5
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    Quote Originariamente inviata da ninja72 Visualizza il messaggio
    vedi se funziona in questo modo :

    codice:
    const cboxs = document.querySelectorAll('input[type="checkbox"]')
                cboxs.forEach((cbox) => {
                    cbox.addEventListener("click", () => {
                        cboxs.forEach((e) => {
                            if (e !== cbox) {
                                e.checked = false
                            }
                        })
                    })
                })
    ciao Ninja, grazie per l'aiuto
    Lo script funziona tranne per IE purtroppo, in particolare il primo forEach
    Vola solo chi ha il coraggio di farlo

  6. #6
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    Si lo sapevo, tieni conto che dal 15 giugno 2022 IE11 sarà dichiarato come deprecato, Microsoft consiglia Edge al suo posto, comunque il codice funzione con tutti i browser moderni.
    Comunque se vuoi renderlo ugualmente compatibile con browser datati potresti implementare un polyfill che vada a colmare quella mancanza.

    codice:
    const cboxs = document.querySelectorAll('input[type="checkbox"]')
                if (window.NodeList && !NodeList.prototype.forEach) {
                    NodeList.prototype.forEach = Array.prototype.forEach
                }
    
                Array.prototype.forEach.call(cboxs, function (cbox) {
                    cbox.addEventListener("click", function () {
                        cboxs.forEach(function (e) {
                            if (e !== cbox) {
                                e.checked = false
                            }
                        })
                    })
                })
    https://docs.microsoft.com/it-it/lifecycle/announcements/internet-explorer-11-end-of-support


  7. #7
    Utente di HTML.it L'avatar di noos
    Registrato dal
    Jul 2003
    Messaggi
    1,001
    Quote Originariamente inviata da ninja72 Visualizza il messaggio
    Si lo sapevo, tieni conto che dal 15 giugno 2022 IE11 sarà dichiarato come deprecato, Microsoft consiglia Edge al suo posto, comunque il codice funzione con tutti i browser moderni.
    Comunque se vuoi renderlo ugualmente compatibile con browser datati potresti implementare un polyfill che vada a colmare quella mancanza.

    codice:
    const cboxs = document.querySelectorAll('input[type="checkbox"]')
                if (window.NodeList && !NodeList.prototype.forEach) {
                    NodeList.prototype.forEach = Array.prototype.forEach
                }
    
                Array.prototype.forEach.call(cboxs, function (cbox) {
                    cbox.addEventListener("click", function () {
                        cboxs.forEach(function (e) {
                            if (e !== cbox) {
                                e.checked = false
                            }
                        })
                    })
                })
    https://docs.microsoft.com/it-it/lifecycle/announcements/internet-explorer-11-end-of-support

    grazie per le informazioni e l'aiuto

    Devo approfondire js alcune nozioni non le conoscevo
    Vola solo chi ha il coraggio di farlo

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.