Visualizzazione dei risultati da 1 a 4 su 4

Discussione: isnan su un form

  1. #1

    isnan su un form

    Avevo bisogno di sapere una cosa ho un form su cui devo fare un controllo per vedere se tutti campi sono giusti!
    Il mio problema è questo:
    vorrei che mi controllasse se è un numero e se è un numero mi dovrebb dare return true senza stampare niente mentre se non è un numero mi deve dare un return false e dire che sono ammessi solo numeri con un alert..
    il problema è che mi dice che è previsto un oggetto ma cosa vuol dire?


    es:

    var numero_civico = window.document.registrati_form.numero_civico.valu e;

    if(isNan(numero_civico)) //se non è un numero return false
    {
    alert("Immetti un numero in questo campo");
    }


    HTML:
    <form name="registrati_form">
    <label>N°</label><input type="text" name="numero_civico" size="3"/>
    </form>

  2. #2
    function isnum(n){
    return !isNaN(n);
    }

    alert(
    isnum('1')
    )

    alert(
    isnum('a')
    )

    alert(
    isnum('1a')
    )

    occhio che se è un numero (true) e poi lo vuoi sommare, devi farci sopra anche un parseFloat()

  3. #3
    graziee!!

    tanto che ci siamo! io se trovo un carattere illegale dentro una stringa voglio che mi metta un messaggio in una variabile che sarà stampata a fine controllo del form ma il problema è che io uso charAt con un ciclo for per fargli cercare ogni carattere e mi mette nella variabile tante volte il messaggio quanti sono gli errori mi spiego meglio:

    //tiene traccia di tutti gli errori e li stampa alla fine
    var print_error = "";

    //caratteri illegali cap
    var illegal_chartCap = "abcdefghilmnopqrstuvwxyzABCDEFGHILMNOPQRSTUVWXYZ" ;

    //se cè un carattere errato nel CAP segnalalo!
    for(var loop = 0; loop < illegal_chartCap.length;loop++)
    {
    the_char = illegal_chartCap.charAt(loop);
    if(cap.indexOf(the_char) != - 1) {

    print_error +="Il cap deve essere in formata numerico. \n \n";

    }
    }
    alert(print_error);


    il problema è che se nel campo cap ci sono per esempio 4 lettere mi stampa 4 volte l'errore con scritto:

    Il cap deve essere in formata numerico.
    Il cap deve essere in formata numerico.
    Il cap deve essere in formata numerico.
    Il cap deve essere in formata numerico.

    e io invece voglio metta solo un messaggio nel alert anche se ci sono piu errori...come si puo fare?

  4. #4
    var foo='12345678'

    alert(
    /^[0-9]+$/.test(foo)
    )

    metodo test per le espressioni regolari

    Se poi vuoi collezionare i caratteri non numerici

    var foo='12a3456b78'

    alert(
    foo.match(/[^0-9]+/g)
    )

    metodo match

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.