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

Discussione: somma e autorefresh

  1. #1

    somma e autorefresh

    Ciao a tutti,
    vorrei creare un RPG on-line, ma non so come impostare il form iniziale. Quando un utente si registra dovrebbe assegnare, secondo le sue preferenze, un punteggio alle varie caratteristiche (es. forza, destrezza, carisma,...). Forse con un esempio e' piu' chiaro:
    - in alto cella con punti disponibili (es. 100)
    - sotto le varie caselle delle caratteristiche (con punteggio minimo 3 e punteggio massimo 18). A fianco un pulsante "+" e un "-", quando si clicca su +/- il punteggio della caratteristica viene incrementato/diminuito di 1 punto e in automatico si aggiorna il totale dei punti disponibili da distribuire.

    E' possibile? Mi potete dire almeno da dove partire?

    Grazie

  2. #2
    improvvisato in ufficio. Da raffinare (ma da raffinare mooooolto)

    pero' funziona (almeno sotto Firefox)

    codice:
    <script type="text/javascript" language="JavaScript">
    function aumenta(nome, value)
    {
      tot_input = document.getElementById("tot");
      changed_input = document.getElementById(nome);
      tot = 1*tot_input.value;
      changed = 1*changed_input.value;
      tot_input.value = tot - value;
      changed_input.value = changed + value;
      
       
    } 
    
    
    </script>
    
    <form name="my_form">
    
    <input type="text" id="tot" name="tot" value="100">
    
    
    <input type="button" id="forza_minus" name="forza_minus" value="-" onclick="javascript:aumenta('forza', -1)">
    <input type="text" id="forza" name="forza" value="00">
    <input type="button" id="forza_plus" name="forza_plus" value="+" onclick="javascript:aumenta('forza', 1)">
    
    
    <input type="button" id="velocita_minus" name="velocita_minus" value="-" onclick="javascript:aumenta('velocita', -1)">
    <input type="text" id="velocita" name="velocita" value="00">
    <input type="button" id="velocita_plus" name="velocita_plus" value="+" onclick="javascript:aumenta('velocita', 1)">
    </form>

  3. #3
    Intanto grazie. Pero' non mi funziona: con IE mi da' errore nello script, con Firefox non fa nulla (il +/-) non cambiano i valori...

  4. #4
    mah strano...

    per quanto rudimentale a me va anche sotto IE6.

    controllo di averlo copiato corretto, al limite lo ri-posto.

  5. #5
    beh, ricordati che non devi fare copia incolla del mio codice, ma "posta"

    altrimenti ti vengono inseriti dei caratteri che non c'entrano nulla

  6. #6
    Con IE6 mi da' errore sulle righe 20-22-24-26: "Expected ;"

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    allora il problema che non funziona dipende dal fatto che questo forum sostituisce la parola javascript con java-script, intanto ho modificato un pò il codice di raven74, vedete se va bene:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    title>Documento senza titolo</title>
    </
    head>

    <
    body>

    <
    script type="text/javascript" language="JavaScript">
    function 
    aumenta(nomevalue) {
        var 
    strValoreMax 6;    //Valor massimo per ogni singolo elemento
        
        
    tot_input document.getElementById("tot");
        
    changed_input document.getElementById(nome);
            
        
    tot 1*tot_input.value;
        
    changed 1*changed_input.value;

        if ((
    tot value)<0) {
            
    alert("TOtale massimo")
        } else {    
            if (((
    changed value)>=(strValoreMax+1)) || ((changed value)<0)) {
                
    alert("Basta")
            } else {
                
    tot_input.value tot value;
                
    changed_input.value changed value;     
            }
        }



    </script>

    <form name="my_form">

    <input type="text" id="tot" name="tot" value="100">


    <input type="button" id="forza_minus" name="forza_minus" value="-" onclick="aumenta('forza', -1)">
    <input type="text" id="forza" name="forza" value="0">
    <input type="button" id="forza_plus" name="forza_plus" value="+" onclick="aumenta('forza', 1)">


    <input type="button" id="velocita_minus" name="velocita_minus" value="-" onclick="aumenta('velocita', -1)">
    <input type="text" id="velocita" name="velocita" value="0">
    <input type="button" id="velocita_plus" name="velocita_plus" value="+" onclick="aumenta('velocita', 1)">
    </form>
    </body>
    </html> 
    Ciao By Peter_Pan...

  8. #8
    Ci siamo quasi... grazie.
    Allora il codice postato da Peter_Pan funziona come volevo. L'unica cosa, se digito manualmente un valore nella cella di testo non mi cambia i punti restanti (es. se ero a 6, restanti 94, digito 2 restanti sono ancora 94 e non 98). Posso bloccare che l'utente digiti il testo nella cella?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    naturalmente devi modificare il valore strValoreMax = 6 ; con 18.
    Ciao By Peter_Pan...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    1,309
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    title>Documento senza titolo</title>
    </
    head>

    <
    body>

    <
    script type="text/javascript" language="JavaScript">
    function 
    aumenta(nomevalue) {
        var 
    strValoreMax 6;    //Valor massimo per ogni singolo elemento
        
        
    tot_input document.getElementById("tot");
        
    changed_input document.getElementById(nome);
            
        
    tot 1*tot_input.value;
        
    changed 1*changed_input.value;

        if ((
    tot value)<0) {
            
    alert("TOtale massimo")
        } else {    
            if (((
    changed value)>=(strValoreMax+1)) || ((changed value)<0)) {
                
    alert("Basta")
            } else {
                
    tot_input.value tot value;
                
    changed_input.value changed value;     
            }
        }



    </script>

    <form name="my_form">

    <input type="text" id="tot" name="tot" value="100" style="width: 40px;" disabled="disabled">


    <input type="button" id="forza_minus" name="forza_minus" value="-" onclick="aumenta('forza', -1)">
    <input type="text" id="forza" name="forza" value="0" style="width: 20px;" disabled="disabled">
    <input type="button" id="forza_plus" name="forza_plus" value="+" onclick="aumenta('forza', 1)">


    <input type="button" id="velocita_minus" name="velocita_minus" value="-" onclick="aumenta('velocita', -1)">
    <input type="text" id="velocita" name="velocita" value="0" style="width: 20px;" disabled="disabled">
    <input type="button" id="velocita_plus" name="velocita_plus" value="+" onclick="aumenta('velocita', 1)">


    <input type="button" id="potere_minus" name="potere_minus" value="-" onclick="aumenta('potere', -1)">
    <input type="text" id="potere" name="potere" value="0" style="width: 20px;" disabled="disabled">
    <input type="button" id="potere_plus" name="potere_plus" value="+" onclick="aumenta('potere', 1)">
    </form>
    </body>
    </html> 
    fatto
    Ciao By Peter_Pan...

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.