Visualizzazione risultati 1 fino 13 di 13

Discussione: rendere questo codice javascript funzionante con tutti i browser

  1. #1
    Data registrazione
    19-08-2010
    Messaggi
    13

    Unhappy rendere questo codice javascript funzionante con tutti i browser

    come da titolo qualcuno sa dirmi come farlo funzionare con tutti i browser. Funziona solo con Explorer.
    Codice:
    <!-- 
    function sommanumeri() { 
    var i, n, somma; 
    n=txtn.value 
    somma=0 
    for(i=0; i<=n; i++) { 
    somma=somma +i 
    } 
    alert(somma) 
    } 
    //-->
    Grazie

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    A me sembra che funzioni anche con gli altri (benché ci siano diverse cose migliorabili), puoi indicare l'indirizzo della pagina in cui è incluso?
    Ultima modifica di karl94 : 04-05-2011 alle ore 15.23.36

  3. #3
    Data registrazione
    19-08-2010
    Messaggi
    13

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Anzitutto non è necessario un ciclo per calcolare la somma dei primi n numeri interi, è sufficiente usare la formula n*(n+1)/2, inoltre non è necessario inserire lo script all'interno di un commento, anzi, è controproducente se la pagina viene interpretata come XHTML.
    Ti consiglio di impostare un id all'input e usare il seguente script:
    Codice HTML:
    <script type="text/javascript">
    	//<![CDATA[
    	function sommanumeri(n){
    		return n*(n+1)/2;
    	}
    	//]]>
    </script>
    e nell'evento onclick questo:
    Codice:
    alert(sommanumeri(document.getElementById('ID')))
    inserendo al posto di ID l'id che hai impostato all'input.

  5. #5
    Data registrazione
    19-08-2010
    Messaggi
    13

    Predefinito

    cos'è l'ID?
    scusa l'ignoranza.
    Grazie

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    È una stringa univoca usata per identificare un singolo elemento, è simile all'attributo name, in questo caso ti consiglio di cambiare name in id.

  7. #7
    Data registrazione
    19-08-2010
    Messaggi
    13

    Arrow

    Ok. grazie. Funziona ma viene visualizzata anche un' altra finestra con undefined come testo. E' possibile evitarlo?
    Grazie

  8. #8
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Non dovrebbe, puoi aggiornare la pagina o scrivere il codice?

  9. #9
    Data registrazione
    19-08-2010
    Messaggi
    13

    Predefinito

    Mi da Nan come risultato adesso. cmq l'ho aggiornata. Grazie

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Sì, scusa errore mio, correggi il codice dell'evento così:
    Codice:
    alert(sommanumeri(+document.getElementById('ID').value))

  11. #11
    Data registrazione
    19-08-2010
    Messaggi
    13

    Predefinito

    Bravissimo. Grazie. Ora se non chiedo troppomi piacerebbe aggiustare anche questo:
    http://francescocerrato.altervista.o...attnumero.html
    grazie

  12. #12
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Vale lo stesso discorso di prima: questa è la funzione ottimizzata
    Codice HTML:
    <script type="text/javascript">
    	//<![CDATA[
    	function fattoriale(n){
    		return n <= 1 ? 1 : n*fattoriale(n-1);
    	}
    	//]]>
    </script>
    nell'evento onclick la richiami così:
    Codice:
    alert(fattoriale(+document.getElementById('ID').value))
    Ricordati dell'id.

  13. #13
    Data registrazione
    19-08-2010
    Messaggi
    13

    Predefinito

    grazie ancora.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •