Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: Popolare uno SPAN

  1. #1
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374

    Popolare uno SPAN

    Qualcuno saprebbe indicarmi una guida all'argomento?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    document.getElementById('ID_SPAN').innerHTML = "codice da inserire";

    Poi per quello ceh ci puo` stare dentro puoi vedere le guide HTML/XHTML.
    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 Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Sto tentando di apprendere...ho provato questo semplice codice
    codice:
    <script language="javascript">
    function scrivivalore(nome){
    if (document.form1[nome].checked = true) {
    document.getElementById('20').innerHTML = "codice";
    document.getElementById('1').innerHTML = "";
    } else {
    document.getElementById('1').innerHTML = "codice";
    document.getElementById('20').innerHTML = "";
    }
    }
    </script>
    <body>
    <form name="form1" method="post" action="">
      
    
    
        <input name="radiobutton" type="radio" onclick="scrivivalore(this.name);"  value="20"> 
        primo radio <span id="1"></span></p>
      
    
    
        <input name="radiobutton" type="radio" onclick="scrivivalore(this.name);" value="1"> 
        secondo radio <span id="20"></span></p>
    </form>
    </body>
    Nelle mie intenzioni quando si clicca su "primo radio" dovrebbe apparire la scritta CODICE su "secondo radio", e quando si clicca su quest'ultimo la scritta CODICE dovrebbe passare sul primo, ma nella realtà viene scritto solo una volta e non cambia più

  4. #4
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Aspetta! Ho trovato un sistema, però è ancora molto impreciso
    codice:
    <script language="javascript">
    var vecchio_valore_radio = 0;
    
       function vecchiovalore(nome) {
       for (i=0;i<document.form1[nome].length;i++){
       if (document.form1[nome][i].checked==true)    {
       vecchio_valore_radio = document.form1[nome][i].id;
       break
       } else {
       vecchio_valore_radio = 0;
       } 
       }
       }
    
    function scrivivalore(nome){
    for (i=0;i<document.form1[nome].length;i++){
    if (document.form1[nome][i].checked==false) {
    testo = "";
    } else {
    testo = " ["+(Math.round(document.form1[nome][i].id)-Math.round(vecchio_valore_radio))+"]";
    }
    }
    id_span = document.form1[nome][0].value;
    if(document.getElementById('id_span')) { 
    document.getElementById('id_span').innerHTML = testo;
    } else {
    return false;
    }
    }
    </script>
    <body>
    <form name="form1" method="post" action="">
      
    
    
        <input name="radiobutton" type="radio" onfocus="vecchiovalore(this.name);" onclick="scrivivalore(this.name);"  id="50">Primo radio <span id="primo"></span></p>
      
    
    
        <input name="radiobutton" type="radio" onfocus="vecchiovalore(this.name);" onclick="scrivivalore(this.name);" id="13">Secondo radio <span id="secondo"></span></p>
      
    
    
        <input name="radiobutton" type="radio" onfocus="vecchiovalore(this.name);" onclick="scrivivalore(this.name);" id="100">Terzo radio <span id="terzo"></span></p>
    </form>
    il problema è che è troppo statico e funziona bene solo se ci sono 2 sole opzioni, così ho provato a renderlo un pò più dinamico, ma non scrive niente a video (e non da nessun errore)! Nelle precedenti prove con soli due radio funzionava, però impostavo direttamente la variabile "testo"

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Questo non mi sembra molto corretto.
    Forse funziona in IE, che digerisce anceh i sassi, ma non in browser seri.

    Anzitutto
    id="20"
    20 non e` un valore valido per un id: deve iniziare per lettera e contenere solo lettere e numeri

    Poi:
    document.form1[nome]
    forse volevi scrivere:
    document.form1.elements[nome]

    Comunque mi sembra molto farraginoso (non sono riuscito a seguire il tutto).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    In effetti è molto artigianale , ma è il primo script che provo a scrivere da solo. L'ultima versione è su http://www.grinderweb2.altervista.org/prova.htm ed è da rifare perchè vale solo se ci son 9 radio e non di meno, non è dinamico insomma! Però il concetto sarebbe quello...

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non riesco proprio a seguire quel codice.
    Non potresti cercare di:
    1. usare i nomi e gli id correttamente
    2. usare gli oggetti per il loro significato: mi pare che gli id come fossero dei value (e non so a che ti servono quei value)
    3. usare le funzioni predefinite (o i metodi) per quel che servono: mi pare che usi Marth.round() al posto di parseInt()
    4. semplificare il codice: io userei dei vettori al posto dei vari case
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Gli id dei radio servono per calcolare il prezzo in un altro script (se però è il caso potrei mettere un campo option). I value devono rimanere così perchè servono ad un altro script ancora...il Math.round è provvisorio, in seguito devo formattare la stringa con due decimali fissi. Questo codice è solo di prova, quando avrò trovato il sistema giusto lo applicherò alla pagina
    In effetti sto proprio cercando il modo di semplificarlo e dinamicizzarlo...sapere come però

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il tuo progetto (che io non conosco) parte con il piede sbagliato. Si basa sull'uso improprio degli oggetti del DOM. Potrebbe anche funzionare in qualche browser, ma non in tutti; e poi se la cosa si complica non funziona piu` nella tua testa, e allora hai voglia cercare di metterci le pezze... .

    Inizia un passo alla volta, ma fai le cose giuste.
    Se serve puoi anche inserire due o piu` cose diverse in un value (basta separarle opportunamente, ad esempio con il carattere |).

    Errori che saltano all'occhio:
    - Math.round() non si puo` applicare alle stringhe
    - form1[nome] - forse vuoi scrivere form1.elements[nome]
    - onfocus="vecchiovalore(this.name); a che serve passare il name di un campo?
    - vecchio_valore_radio = 0; vecchio_valore_radio deve contenere sempre una stringa: non ha senso che ogni tanto contenga un numero.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Il mio risultato finale deve essere come questo sito, dove quando cambi un componente ti aggiorna automaticamente la differenza di prezzo degli altri componenti della stessa categoria...non è che avresti un esempio da qualche parte?

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