Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [js]Obbligare numeri o testo in campi text

    Vorrei essere obbligato a inserire del testo o dei numeri in specifici campi text...
    come posso fare?

    esempio

    <input type="text" name="lettere">
    <input type="text" name="numeri">

    Nel primo caso ci dovranno essere solo lettere e nient'altro
    Nel secondo solo numeri...

    CIAO
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    <input type="text" name="lettere" onkeyup="if(this.value.match(/[^a-zA-Z]/)this.value='';">


    <input type="text" name="numeri" onkeyup="if(this.value.match(/[^\d]/)this.value='';">

    Questo annulla tutta la stringa se trova un carattere "sbagliato": si puo` fare quacosa di piu` intelligente, se serve.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    I campi non funzionano/...
    anche se secondo me dovrebbe essere un codice del genere
    if(! this.value.match(/[^a-zA-Z]/) this.value=''

    cioe' se il valore NON fa match con uno dei caratteri allora tutto il campo lo annulli.

    Cmq non funziona e cmq intendevo non permettere proprio la digitazione di numeri, cioe' ignorarli completamente nel caso di un campo testo e viceversa.


    Originariamente inviato da Mich_

    si puo` fare quacosa di piu` intelligente, se serve.
    Cosa intendi?

    CIAUX
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Attenzione che hai applicato una negazione sbagliata.

    Per le lettere puoi usare:
    match(/[^a-zA-Z]/)
    oppure
    !match(/^[a-zA-Z]*$/)

    mentre per i numeri:
    match(/[^\d]/) o match(/[^0-9]/)
    oppure
    !match(/^[\d]*$/) o !match(/^[0-9]*$/)


    Per qualcosa di piu` intelligente, pensavo a qualcosa che togliesse solo i caratteri non accettati:

    onkeyup="this.value = this.value.replace(/[^a-zA-Z]/g, '');"

    Se ancora non funziona, posta la tua implementazione.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Originariamente inviato da Mich_

    onkeyup="this.value = this.value.replace(/[^a-zA-Z]/g, '');"

    Proprio la soluzione che cercavo!!!

    Puoi darmi un url dove e' spiegata bene la sintassi del matching?

    Vorrei fare il controllo valuta:
    numero , numero numero
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    I metodi match, replace, ed altri usano le RegExp (regular expression).
    Queste hanno un linguaggio particolare, molto potente, ma molto delicato (puo` essere che un ? in piu` o in meno ti cambi tutto).

    Nel manuali JS trovi sempre un capitolo sulle RegExp, ad esempio in
    http://www.devguru.com/technologies/...ipt_index.html trovi due pagine essenziali (ma mancano alcune cose).

    Io le ho studiate sul manuale Perl, ma in JS non ci sono le RE estese.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Ok ci provo...


    Grazie...

    Se ho problemi riposto qui...
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  8. #8
    vorrei fare il controllo sulla valuta:

    onkeyup="this.value = this.value.replace(/[^\d,?\d{2}]/, '');">

    cerco di spiegare quello che ho cercato di fare:
    nella stringa ci puo' essere un numero una virgola e due numeri

    Problema, qeusta stringa e' ammessa
    2323,23,23,23,2332332332,32
    o questa
    ,323223,2332
    e cosi' non va beene
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  9. #9
    ho capito dov'e' l'errore'

    l'evento on keyup puo' controllare SOLO che quando viene rilasciato un tasto corrisponda al match di caratteri o stringhe, ma non puo' fare controlli "duraturi" sulla stringa... cioe' non puo' sapere quello che c'e' prima o dopo la pressione di un tasto

    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  10. #10
    per fare il controllo se e' realmente una valuta ho pensato a questa funzione:

    codice:
    function controlla(){
    		val = document.pippo.valuta.value;
    		if ( val != ''){
    			var RE = new RegExp("/[\d]+\,\d{2}/");
    			if (! document.pippo.valuta.value.match(RE) ){
    				alert('errore');
    				document.pippo.valuta.focus();
    			}
    			else{
    				alert('ok');
    			}
    		}
    	}

    ma presenta due errori:
    1) non rispetta la regExp
    2) non torna sul campo valuta (focus)

    la funzione la richiamo con obBlur(controlla())
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

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.