Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problemi con convertitore gradi Celsius/Fahrenheit

  1. #1

    Problemi con convertitore gradi Celsius/Fahrenheit

    Salve a tutti!
    Sto cercando di replicare i classici convertitore di temperatura da gradi celsius a fahrenheit e viceversa tramite uno javascript in un html file.

    Il form e' composto da un box per l'inserimento del valore, un radiobox per la scelta della conversione da C&#176 a F&#176 o da F&#176 a C&#176, un tasto per la conversione

    Vi posto il mio codice:
    codice:
    
    
    codice:
    <!DOCTYPE html>
    <html>
    <head>
    	<title>Convertitore C&#176 <-> F&#176</title>
    </head>
    
    
    <body>
    <br><br>
    	<div align="center">
    
    
    	<form>
    		<div align="right">
    			<p align="center"><strong>F&#176 o C&#176 </strong>
    				<input type="number" id="valore">
    			</p>
    		</div>
    		<br><br>
    			Da F&#176 a C&#176<input type="radio" name="gradi" id="celsius">
    			<br><br>
    			Da C&#176 a F&#176<input type="radio" name="gradi" id="fahrenheit">
    		<br><br>
    		<input type="submit" value="Calcola" onclick='conversione()'>
    	</form>
    	</div>
    
    
    	<script type="text/javascript">
    			var val = document.getElementById('valore').value;
    			var ris=0;
                            
    		function conversione(){
    			
    				if (document.getElementById('celsius').checked) {
    					ris = (val -32)/1.8;
    				};
    				if (document.getElementById('fahrenheit').checked) {
    					ris = (val *1.8)+32;
    				};
    			document.write("Risultato conversione: " +ris);
    		}
    	</script>
    </body>
    </html>


    Ho diversi problemi e dubbi:
    1) il principale e' che mi da' sempre lo stesso valore come risultato: da C
    &#176 a F&#176 32 e da F&#176 a C&#176 -17.77777777777778
    2) Mi esce il risultato (sbagliato) solo tramite Google Chrome e non tramite Safari
    3) Quando pigio il bottone per la conversione, la pagina si aggiorna dandomi solo la scritta di del risultato mentre a me interessava che a
    pparisse sotto al form ed al pulsante

    Sono un ignorante in JS

  2. #2
    devi spostare

    codice:
    var val = document.getElementById('valore').value;
    var ris=0;
    dentro la funzione. Altrimenti il valore di val rimane lo stesso. (e l'errore dovresti averlo anche su safari)

    Poi, aggiungi un elemento nell'html, tipo <span id="risultato"></span> e invece del document.write usa

    codice:
    document.getElementById("risultato").innerHTML = "Risultato conversione: " +ris;

  3. #3
    Quote Originariamente inviata da chumkiu Visualizza il messaggio
    devi spostare

    codice:
    var val = document.getElementById('valore').value;
    var ris=0;
    dentro la funzione. Altrimenti il valore di val rimane lo stesso. (e l'errore dovresti averlo anche su safari)

    Poi, aggiungi un elemento nell'html, tipo <span id="risultato"></span> e invece del document.write usa

    codice:
    document.getElementById("risultato").innerHTML = "Risultato conversione: " +ris;
    OTTIMO! Ora la conversione e' giusta, grazie.
    Mi rimane comunque il problema in safari. Invece per la stampa con JS, vedo la scritta col risultato per mezzo secondo e poi il nulla. Com'e' possibile?
    Ultima modifica di LolloMazzy; 16-02-2017 a 16:23 Motivo: non viene riconosciuta la e accentata

  4. #4
    ah vero. Per quello anziché mettere il bottone <input type="submit" metti <input type="button"

    e il <form> puoi anche levarlo via.

    In Safari che problema ti da?

  5. #5
    PROBLEM SOLVED! THANBKS

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