Visualizzazione dei risultati da 1 a 8 su 8

Discussione: problema con "typeof"

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    7

    problema con "typeof"

    ciao a tutti, sono nuovo del forum..ho iniziato da qualche giorno a studiare javascript e ho provato a fare qualche prova con i form. in pratica ho cercato di costruire una funzione che mi dica il tipo di dato inserito in un form text, grazie al "typeof". il problema è che mi dice sempre stringa!!! (ho omesso apposta la chiusura del body e l'inizio di head e html etc etc)

    <script type="text/javascript">
    function dimmi () {
    var x=document.forms["verifica"]["nome"].value; //porto il valore della casella nome nella variabile locale x

    alert (typeof x);
    }

    </script>
    </head>
    <body>

    <form action="Senzatitolo-2.html" method="post" name="verifica" onsubmit= "dimmi() ">
    Nome: <input name="nome" type="text" value="">
    <input name="Controlla" type="submit" value="Controlla" >

    </form>

    dov'è che sbaglio? all'inizio mi era venuto il dubbio che la variabile x, venisse attribuito il valore stringa "document...bla bla bla", ma inserendo 1, nel form e facendo un semplice alert(x), mi restituisce 1..quindi non capisco perchè facendo typeof x mi salta fuori stringa..

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    7
    la cosa che mi fa arrabbiare è che se faccio cosi:

    <script type="text/javascript">
    function dimmi () {
    var x=1;

    alert (typeof x);
    }

    mi viene fuori che è number, giustamente.
    mentre se nel form scrivo 1 e clicco il pulsante di submit e quindi dovrei assegnare 1, alla variabile x, mi dice che è una stringa

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto, è corretto gli input inviano stringhe, se vuoi un numero di forzarlo con parseInt = numero intero o parseFloat = numero con virgola
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    7
    perchè ti spiego..
    quello è un pezzettino di una "validazione" del form. prima l'if (x==""||x==null) che se è nullo esce fuori "campo obbligatorio" e nell'else, voglio che venga fuori l'alert con il tipo di dato che ho inserito con uno switch (x). "case string", se ho inserito una stringa o "case number" un number se ho inserito un numero.

    quindi se gli input inviano stringe mi sa che non si può fare in pratica volevo provare a fare una doppia verifica, prima con javascript e poi con php

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    usa isNaN(variabile)

    Comunque se l'utente ha digitato 234 intendendo stringa "234" che fai?
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    7
    Originariamente inviato da br1
    usa isNaN(variabile)

    Comunque se l'utente ha digitato 234 intendendo stringa "234" che fai?
    ah vero! l'isNaN! cosi funziona

    function validateForm()
    {
    var x=document.forms["myForm"]["fname"].value;
    if (isNaN(x))
    alert ("e' una stringa");
    else
    alert ("e' un numero");
    }

    però vero, viene fuori stringa se scrivo "234"

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    7
    Originariamente inviato da br1
    usa isNaN(variabile)

    Comunque se l'utente ha digitato 234 intendendo stringa "234" che fai?
    ecco

    <script type="text/javascript">
    function validazione()
    {
    var x=document.getElementById("demo").value;
    if(x==""||x==null) //controllo campo vuoto
    {
    alert("Campo obbligatorio");
    return false;
    }

    else if(isNaN(x)) //controllo che non venga inserita una stringa
    {
    alert("inserire un formato numerico valido");

    }
    else if(!isNaN(x)) //controllo che venga inserito un numero
    {
    alert("contenuto numero");

    }

    }
    </script>
    </head>
    <body>


    Inserire un numero: <input id="demo" type="text">



    <button type="button" onclick="return validazione()">Clicca!</button>

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    isNaN accetta un . valido .1 1. 1.1

    usa una re


    Massimo.

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.