Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di daspide
    Registrato dal
    Nov 2001
    Messaggi
    132

    recupero valori da radio

    Ciao a tutti,
    ho creato un script per recuperare i dati da un serie di radio,
    apparentemente tutto funziona, cioè lo script non và in errore, ma se faccio il debug la funzione eval (che dovrebbe restituirmi il valore del radio) mi da undefined??????
    qualcuno può aiutarmi?!?
    ---head
    codice:
    function somma1() {
    for (var defnum = 1; defnum < 5; ++defnum){
    //alert(eval("document.form1.d" + defnum + ".value"));
    //alert(defnum);
    //alert("via ciclo");
    elvalore = eval("document.form1.d" + defnum + ".checked");
    //alert("elvalore" + elvalore);
    var fvalore = eval("document.form1.d" + defnum + ".value");
    //alert("fvalore" + fvalore);
    if(eval("document.form1.d" + defnum + ".checked") == false){
    //alert("via if");
    pvalore = pvalore + fvalore
    //alert("pvalore" + pvalore);
    document.form1.tot.value = pvalore;
    }
    }
    }
     </script>
    ---body

    codice:
    ...<td width="31">
    <input name="d6" type="radio" value="1"></td>
    </tr>
    <tr>
    <td>
    
    No </p></td> 
    <td><input name="d6" type="radio" value="0" checked>
    <input name="tot" type="text" id="tot" onClick="somma1()"></td>        </tr>
    <tr>
    grazie ciao
    ...cosa puoi fare con un rasoio,un limone ed un gatto?!?......
    d%asp%ide

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao daspide,

    quando hai più elementi dello stesso form che hanno lo stesso nome, come sono di solito i radio, hai una collezione di oggetti.
    Se hai 2 o più radio che si chiamano d1 per sapere il valore del radio checkato
    codice:
    var rr = document.NomeForm.d1;
    var valore = '';
    for(var i=0;i<rr.length;i++)
      if(rr[i].checked)valore=rr[i].value
    l'uso di eval è sconsigliato... meglio usare una sintassi del tipo
    codice:
    var rr = document.NomeForm.elements['d'+tuavariabile];

  3. #3
    Utente di HTML.it L'avatar di daspide
    Registrato dal
    Nov 2001
    Messaggi
    132
    Ciao willybit, anzitutto grazie per l'interesse.
    Hai quasi centrato il punto, nel senso:
    si ho una serie di radio si/no su 17 domande; per effetto della pagina asp che deve fare dei calcoli ho assegnato ad ogni coppia di radio un nome univoco d1...d17.
    oltre al singolo valore del 'nomeradio' mi serve passare un valore di somma dei 'si' scelti.
    non sono molti bravo con javascript ho provato ad adattare la tua funzione ma non riesco a capire alcune cose e quindi non funziona
    ci sono due domande
    perchè non mi somma il campo?
    elements e un oggrtto javascript?
    codice:
    function somma1(){
    var rr = document.form1.d1;
    var valore = '';
    for(var i=0;i<rr.length;i++){
    	rvalore = document.form1.tot.value;
    	alert(rvalore);
      if ((rr[i].checked) == true){
      document.form1.tot.value = '';
      smm = (valore=rr[i].value) + rvalore;
    	document.form1.tot.value = smm;
    		}
    	}
    }
    a questo link puoi vedere la pagina.
    http://david-e.no-ip.info/prova.asp
    ciao
    ...cosa puoi fare con un rasoio,un limone ed un gatto?!?......
    d%asp%ide

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    alle domande si risponde sempre e solo sì o no? a sì corrisponde 1 e a no corrisponde 0?... potresti fare così
    codice:
    function somma1(){
      var ff = document.form1.elements;
      var somma=0;
      for(var defnum=1;defnum<=17;defnum++)
        somma+=ff['d'+defnum][0].checked?1:0;
      ff['tot'].value=somma;
    }
    elements è un oggetto javascript (contiene tutti gli elementi del form)
    se le domande le estrai da un db nel ciclo for puoi fare così
    codice:
      for(var defnum=1;defnum<=<%=TuoRecordset.RecordCount%>;defnum++)

  5. #5
    Utente di HTML.it L'avatar di daspide
    Registrato dal
    Nov 2001
    Messaggi
    132
    Perfetto funziona benissimo così com'è;
    credo anche di aver capito la funzione dell'oggetto elements.
    grazie ancora per le spiegaizioni ciao
    ...cosa puoi fare con un rasoio,un limone ed un gatto?!?......
    d%asp%ide

  6. #6
    Utente di HTML.it L'avatar di daspide
    Registrato dal
    Nov 2001
    Messaggi
    132

    ancora un aiutino?!?!?!?

    ancora un aiutino?!?!?!?

    ho pensato di cambiare la logica del messaggio utilizzando javascript invece degli script asp nela pg successiva ma non riesco a farlo funzionare avresti voglia di............
    ehm...........
    insomma.....................
    qui c'è il codice:
    ---HEAD
    codice:
    <script language="javascript">
    
    function somma1(ww){
      var ff = document.form1.elements;
      var somma=0;
      for(var defnum=1;defnum<=17;defnum++){
        somma+=ff['d'+defnum][0].checked?1:0;
      ff['tot_numrisp'].value=somma;
      }
    }
    
    function messaggion(){
    //elenco messaggi risposte
    msg1 = "Neanche un ?Si? ? Complimenti: il Suo udito &egrave; eccellente! ";
    msg2 = "Lei ...";
    msg3 = "Il ... ";
    msg4 = "Il ... ";
    msg5 = "Le ...";
    //-----------------------------------
    var qq = 0;
    qq = (Number(document.form1.tot_numrisp.value));
    alert(qq);
    	switch (qq){
    	case 0 :
    		alert(msg1);
    	case 1 :
    		alert(msg2);
    	case 2 :
    		alert(msg3);
    	case 5 :
    		alert(msg4);
    	case 10 :
    		alert(msg5);
    	}
    }
    </script>
    ---BODY
    codice:
    <input name="tot_numrisp" type="text" id="tot_numrisp" onClick="somma1();messaggion()" value="0">
    mi va vedere tutti i msg o megli a partire da n° di input
    in realtà dovrebbe ragionare
    0,risp
    1, risp
    da 2 a 4, risp
    da 5 a 10, risp
    da 10 in su,risp
    ho provato ad aggiungere un 'if' così ma non cambia
    codice:
    if ((qq == "2") || (qq == "3") || (qq == "4")){
    ss = "2";
    }else if ((qq == "5") || (qq == "6") || (qq == "7") || (qq == "8") || (qq == "9") || (qq == "10")){
    ss = "3";
    }
    puoi dargli un occhiata????
    ...cosa puoi fare con un rasoio,un limone ed un gatto?!?......
    d%asp%ide

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il costrutto switch ... case esegue tutte le istruzioni a partire dal confronto valido... per evitarlo devi inserire un break;
    codice:
    	switch (qq){
    	case 0 :
    		alert(msg1);
    		break;
    	case 1 :
    		alert(msg2);
    		break;
    	case 2 :
    		alert(msg3);
    		break;
    	case 5 :
    		alert(msg4);
    		break;
    	case 10 :
    		alert(msg5);
    	}
    ciao

    ps: non puoi usarlo per un range di valori... il confronto e' fatto solo per uguaglianza: i valori da considerare devi inserirli tutti
    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

  8. #8
    Utente di HTML.it L'avatar di daspide
    Registrato dal
    Nov 2001
    Messaggi
    132
    ok provo
    ...cosa puoi fare con un rasoio,un limone ed un gatto?!?......
    d%asp%ide

  9. #9
    Utente di HTML.it L'avatar di daspide
    Registrato dal
    Nov 2001
    Messaggi
    132
    ho risolto così
    codice:
    ......
    if (qq >= 2 && qq <=4){
    	qq = "2";
    }else if (qq >4 && qq <=10){
    	qq = "5";
    }else if (qq >10){
    	qq = "10";
    }
    ..........
    ciao
    ...cosa puoi fare con un rasoio,un limone ed un gatto?!?......
    d%asp%ide

  10. #10
    ho un problema simile a quello daspide ma non riesco a risolverlo

    mi potreste dare una mano
    ho aperto questo messaggio
    http://forum.html.it/forum/showthrea...hreadid=933358

    ho provato anche a mettere in pratica quello che ho trovato in questo from ma non mi passa il dato.

    il codice è il seguente:

    i 3 form
    ***********Form da dove devo prendere i dati*********

    <form action="" name="telefonate">
    Telefonata: in entrata
    <input name="valore" type="radio" value="in">
    o in uscita
    <input name="valore" type="radio" value="out"></form>

    ************form che prendono i dati**************
    <form action="prova.php" name="ricerca1" onSubmit="prendi(1);">
    cerca azienda:
    <input type="text" name="frag_soc" class="nero11" size="20" maxlength="200">
    <input type="hidden" value="" name="tele">
    <input type="image" name="invia" src="../img/pulsanti/trova.gif" width="25" height="20">
    </form>

    ----

    <form name="ricerca2" action="prova.php" onSubmit="prendi(2);">
    cerca persona:
    <input type="text" name="fcognome" class="nero11" size="20" maxlength="200">
    <input type="hidden" value="" name="tele">
    <input type="image" name="invia" src="../img/pulsanti/trova.gif" width="25" height="20">
    </form>



    ***********script*******************

    function prendi(numero){
    var rr = document.telefonate.valore;
    var pippo='ricerca'+numero;
    for(var i=0;i<rr.length;i++)
    if(rr[i].checked)document.pippo.tele.value=rr[i].value

    ********************************

    come posso risolvere

    grazie

    Emanuela

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 © 2026 vBulletin Solutions, Inc. All rights reserved.