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

    [js] Passare nome di un radiobutton

    salve a tutti,
    ho un problema e non capisco perchè non funziona:

    codice:
    function ckqst() {
     var action = 0;
        for (var i=0; i < document.questionario.ans_a.length; i++) {
           if (document.questionario.ans_a[i].checked)  {
    	     action = 1;
            }
        }
    }
    function ckall() {
        ckqst();
       .....
    }
    codice:
    function ckqst(campo) {
     var action = 0;
        for (var i=0; i < document.questionario.campo.length; i++) {
           if (document.questionario.campo[i].checked)  {
    	     action = 1;
            }
        }
    }
    function ckall() {
        ckqst('ans_a');
       .....
    }
    nel primo caso funziona, perchè nel secondo caso non funziona? vorrei passare il nome dei radio button da controllare alla funzione ma mi dice che document.questionario.campo è undefined, mentre se metto un alert (campo), la risposta è "ans_a"..

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    perche "campo" è una variabile, non puoi utilizzarla in quel modo. Nel secondo caso js va a cercare un elemento html di nome campo che non esiste.

  3. #3
    Originariamente inviato da Vindav
    perche "campo" è una variabile, non puoi utilizzarla in quel modo. Nel secondo caso js va a cercare un elemento html di nome campo che non esiste.

    grazie

    in effetti pensavo fosse una problema del genere: esiste una soluzione a questa cosa o se ho 10 campi devo replicare il codice 10 volte?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    certo, esistono più soluzioni... una è questa:

    codice:
    function ckqst(campo) {
    objRadio = document.getElementsByName(campo);
     var action = 0;
        for (var i=0; i < objRadio.length; i++) {
           if (objRadio[i].checked)  {
    	     action = 1;
            }
        }
    }

  5. #5
    Originariamente inviato da Vindav
    certo, esistono più soluzioni... una è questa:

    codice:
    function ckqst(campo) {
    objRadio = document.getElementsByName(campo);
     var action = 0;
        for (var i=0; i < objRadio.length; i++) {
           if (objRadio[i].checked)  {
    	     action = 1;
            }
        }
    }
    objRadio = document.getElementsByName(campo);

    che pirla che sono

    grazie 1000 ...

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.