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

    Radio button con button

    Volevo sapere come potrei fare un programmino javascript che faccia le seguenti cose:
    Il funzionamento è analogo a quello di un distributore di lattine.
    C'è un 2 radiobutton, 2 text e un bottone.
    Praticamente io seleziono un radiobutton per esempio della coca, poi clicco sul button (ke svolge la funzione) e in teoria dovrebbe diminuire il valore del text da 5 (che gli ho dato io....input type="text" name="fanta" value="5") a 4. Quindi ogni volta che io seleziono un radio e poi clicco sul button mi deve scalare di uno. Io ho provato 1000 volte ma nn scala, oppure scalano tutti di uno. A se riuscite mi potete spiegare anche come fermarlo a zero, poi io ci metto un alert...

    Vi ringrazio in anticipo, se riuscite bene se no grazie lo stesso.....è un lavoro per la scuola.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Benvenuto sul forum

    Ok per la descrizione del problema, ma dovresti postare il codice che hai creato per permettere la diagnosi e le correzioni, cosi' ci stai chiedendo di inventarne uno nuovo

    ciao
    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

  3. #3
    prova ad andare nell'altra discussione dove c'è radiobutton con codice. Scusa se ne ho creata un'altra ma ho capito solo ora come funziona il forum

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    scusate, ne ho viste 3 uguali e buttato le 2 senza risposte

  5. #5
    Ciao manusamir

    modificare il tuo codice e' piuttosto facile.

    Prima pero' dovresti postarlo di nuovo visto che e' stato erroneamente cancellato.

    Pero' visto che e' un compito di scuola magari piuttosto che darti la soluzione bella e fatta possiamo aiutarti a capire dove sbagli (perdonami, ma vengo da un'epoca in cui internet per fare i compiti non c'era... noi i compiti lo copiavamo la mattina prima di entrare in classe )

  6. #6
    <html>
    <head><TITLE>home</TITLE>

    <script language="javascript" type="text/javascript">
    function x(uno)
    {
    var dati=window.document.distributore;

    var uno, coca, fanta, the, acqua;

    uno= parseInt(dati.uno.value);
    coca= parseInt(dati.coca.value);
    fanta= parseInt(dati.fanta.value);
    the= parseInt(dati.the.value);
    acqua= parseInt(dati.acqua.value);


    if(uno == 1){
    dati.coca.value = parseInt(dati.coca.value)-1;}

    if(dati.uno.value == 2 ){
    dati.fanta.value = parseInt(dati.fanta.value)-1;}

    if(dati.uno.value == 3){
    dati.the.value = parseInt(dati.the.value)-1;}

    if(dati.uno.value == 4){
    dati.acqua.value = parseInt(dati.acqua.value)-1;}








    }

    </script>
    </head>

    <body>
    <h1>Distributore di lattine</h1>



    <form name="distributore">

    coca<INPUT TYPE="radio" NAME="uno" VALUE="1" onClick="javascript:x(1);"> <input type="text" name="coca" value="5">



    fanta<input type="radio" name="uno" value="2"> <input type="text" name="fanta" value="5">



    the'<input type="radio" name="uno" value="3"> <input type="text" name="the" value="5">



    acqua<input type="radio" name="uno" value="4"> <input type="text" name="acqua" value="5">




    <input type="button" name="controllo" onclick="x()" value="OK">



    <input type="reset" value="pulisci">

    </form>



    </body>
    </html>

  7. #7
    Scusa è questo quello finale


    <html>
    <head><TITLE>home</TITLE>

    <script language="javascript" type="text/javascript">
    function x()
    {
    var dati=window.document.distributore;

    var uno, coca, fanta, the, acqua;

    uno= parseInt(dati.uno.value);
    coca= parseInt(dati.coca.value);
    fanta= parseInt(dati.fanta.value);
    the= parseInt(dati.the.value);
    acqua= parseInt(dati.acqua.value);


    if(uno == 1){
    dati.coca.value = parseInt(dati.coca.value)-1;}

    if(dati.uno.value == 2 ){
    dati.fanta.value = parseInt(dati.fanta.value)-1;}

    if(dati.uno.value == 3){
    dati.the.value = parseInt(dati.the.value)-1;}

    if(dati.uno.value == 4){
    dati.acqua.value = parseInt(dati.acqua.value)-1;}








    }

    </script>
    </head>

    <body>
    <h1>Distributore di lattine</h1>



    <form name="distributore">

    coca<INPUT TYPE="radio" NAME="uno" VALUE="1" > <input type="text" name="coca" value="5">



    fanta<input type="radio" name="uno" value="2"> <input type="text" name="fanta" value="5">



    the'<input type="radio" name="uno" value="3"> <input type="text" name="the" value="5">



    acqua<input type="radio" name="uno" value="4"> <input type="text" name="acqua" value="5">




    <input type="button" name="controllo" onclick="x()" value="OK">



    <input type="reset" value="pulisci">

    </form>



    </body>
    </html>

  8. #8
    un primo problema e' qua:

    codice:
    uno= parseInt(dati.uno.value);


    Il fatto e' che quando ci sono molti oggetti con lo stesso nome (nel tuo caso hai 4 radio che si chiamano uno) javascript ti restituisce un array che li contiene tutti e non puoi accedere direttamente al valore che e' stato selezionato.

    quindi dati.uno e' un array contenente 4 radio a cui puoi accedere ad esempio cosi':

    codice:
    dati.uno[1].value //se vuoi sapere il valore del secondo radio
    Bisogna quindi fare un ciclo for per vedere quale e' selezionato (checked)

    codice:
    for(i=0; i<dati.uno.length; i++)
    {
        if(dati.uno[i] == checked)
            selezionato =  dati.uno[i].value;
    }
    O almeno io non conosco altri modi.

    in questo modo la variabile 'selezionato' conterra' il value del radiobutton selezionato. Poi puoi fare i tuoi if(selezionato==1) etc.. etc...

    Vi sono altri errori qua e la ma questo era quello concettualmente piu' importante

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    infatti quello e' l' errore principale

    si potrebbe risolvere cosi', se hai dubbi chiedi pure
    Codice PHP:
    function x(){
        var 
    dati=window.document.distributore;
        
    // collezione degli elementi del form con name="uno"
        
    var elRadio=dati.elements['uno'];
        
    // array nomi campi testo 
        
    var bevande=new Array('coca','fanta','the','acqua');

        
    // ciclo per i radio
        
    for(var i=0;i<elRadio.length;i++){
            
    // se segnato
            
    if(elRadio[i].checked) {
                
    // riferimento al campo testo relativo
                    
    var testo=dati.elements[bevande[i]];
                
    // se il valore e' l' intero 0
                
    if(parseInt(testo.value)==0){
                    
    alert('scorta prodotto "'+bevande[i]+'" esaurita!');
                }
                
    // altrimenti
                
    else {
                    
    // sostituisco al valore del campo l' intero presente -1
                        
    testo.value=parseInt(testo.value)-1;
                }
            }
        }


  10. #10
    grazie Mille!!!!
    grazie Mille!!!!
    grazie Mille!!!!
    grazie Mille!!!!
    grazie Mille!!!!
    grazie Mille!!!!
    Adesso me lo studio bene per capire perfettamente. Ho appena iniziato col javascript è per quello che sbaglio....
    Sono sempre riuscito a fare gli altri compiti ma questo non riuscivo proprio in quanto nn conoscevo gli array......
    Adesso lo modifico in modo che ogni volta che scala, salta fuori un immagine della rispettiva bevanda!!!
    CMQ Grazie mille

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.