Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178

    Funzione su checkbox con nome dinamico

    Buongiorno a tutti,
    In una pagina .asp ho, in unico form, una serie di checkbox (non so quanti in quanto la pagina è dinamica) che hanno un nome generato in base ad id del database di questo tipo:
    codice:
    00000123_00002345
    00123456_00009876
    00000123_00343434
    In pratica io vorrei considerare tutti quelli con la prima parte uguale (in questo caso 00000123) come facenti parti di un unico gruppo e al clic su uno dei checkbox di questo gruppo vorrei si disabilitassero gli altri...
    Qualcuno ha qualche suggerimento? Ringrazio in anticipo
    Buji

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E` gia` stato trattato numerose volte: fai una ricerca nel forum (bottone in alto a dx).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178
    Ho cercato ma non ho trovato nulla
    Buji

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    http://forum.html.it/forum/search.ph...der=descending

    Ci sono vari interventi, tra cui alcuni trattano della disabilitazione dei checkbox, altri del test dei checkbox.

    Le istruzioni chiave che ti possono servire sono:
    var elem = document.NOMEFORM.elements;
    for(var i=0; i<elem.length; i++) {
    if(elem[i].type == "checkbox" && elem[i].name.substr(0,9) == "00000123_") ...
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178
    Fra miliardi di esperimenti ho tirato fuori sta cosa che probabilmente è folle...
    Provo a dare un occhio al link che hai postato!
    codice:
    function BloccaCheck(oCheck){ 
    var cName = oCheck.name.substring(1,10);
    if (oCheck.value == 'ON') {
    	for (oObj in document.form) {
    		if (oObj.name.substring(1,10) == cName) {
    	//&& oObj.name != oCheck.name) { 
    			oObj.disabled = true } 
    	}
    } else {
    	for (oObj in document.form) {
    		if (oObj.name.substring(1,10) == cName) {
    			oObj.disabled = false }
    	}
    }
    return true; 
    }
    Buji

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il tuo script non e` fatto male.

    Non so cosa sia document.form: probabilmente intendevi oCheck.form, cioe` il form che contiene il campo passato nella variabile.

    Inoltre non capisco perche` testi la stringa dal secondo carattere all'undicesimo: io testerei dal primo al nono.

    Vedi anche questa modifica:
    codice:
    function BloccaCheck(oCheck){ 
      var cName = oCheck.name.substr(0,9);
      var onoff = (oCheck.value == 'ON');
    
      for (oObj in oCheck.form) {
        if (oObj.name.substr(0,9) == cName) {
    	//&& oObj.name != oCheck.name) { 
          oObj.disabled = onoff;
        }
      }
      return true; 
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178
    codice:
    function BloccaCheck(oCheck){ 
      var cName = oCheck.name.substr(0,10);
    //  var onoff = (oCheck.checked == 'ON');
    var fo = document.form.elements; 
    for (x = 0; x < fo.length; x++) 
    { 
        if (fo[x].name.substr(0,10) == cName && fo[x].name != oCheck.name) {
          fo[x].disabled = oCheck.checked;
        }
      }
      return true; 
    }
    Alla fine ho ottenuto il risultato desiderato con questo script.
    Grazie mille veramente
    Buji

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ripeto: document.form non e` un oggetto definito in JS. Forse lo e` nel tuo browser specifico.

    Puoi usare uno dei seguenti:
    document.forms[0] // se il form e` il primo o l'unico della pag
    document.NOMEFORM
    document.forms['NOMEFORM']

    oppure puoi usare il form che contiene il campo passato:
    oCheck.form
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9

    Re: Funzione su checkbox con nome dinamico

    Originariamente inviato da buji
    In pratica io vorrei considerare tutti quelli con la prima parte uguale (in questo caso 00000123) come facenti parti di un unico gruppo e al clic su uno dei checkbox di questo gruppo vorrei si disabilitassero gli altri...
    Qualcuno ha qualche suggerimento? Ringrazio in anticipo
    non puoi usare un radio?


  10. #10
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178

    Re: Re: Funzione su checkbox con nome dinamico

    Originariamente inviato da Popper
    non puoi usare un radio?
    Ci avevo pensato ma ho considerato poi il fatto che in una classe di radio, una volta che ne hai selezionato uno non lo puoi deselezionare...

    @Mich_: utilizzerò i tuoi suggerimenti per cercare una soluzione più assoluta
    Buji

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.