Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 42
  1. #1

    [javascript] mostrare un messaggio se si inseriscono determinati caratteri in un form

    Salve a tutti!
    Avrei la necessità di mostrare un messaggio all'utente qualora inserisca nel campo di un form i seguenti caratteri:

    &
    "
    '
    <
    >

    Il messaggio li dovrebbe avvertire che questi caratteri non hanno valore 1 ma valore superiore quando viene calcolato il numero di caratteri.
    E' possibile?
    Io sono completamente a digiuno di js e mi servirebbe questa funzione per un prog in php che sto facendo (in pratica i caratteri che ho citato sopra vengono trasformati in entità HTML e quindi occupano maggior spazio nel db).
    Grazie mille! Ciao!

  2. #2
    basta controllare con un'espressione regolare se nel campo sono presenti quei caratteri,se ci sono mandi un alert oppure fai quello che vuoi tu

    function controllaspeciali(campo){
    re=/[&><"']/;
    if(re.test(campo.value)) {alert("hai inserito blablabla")}
    }

    nell'input ci metti onChange="controllaspeciali(this)"

  3. #3
    ocio che se uno schiaccia enter invece di cliccare col mouse la funzione non viene chiamata,non so perchè, ma penso sia colpa di onChange....

  4. #4
    Non ho capito bene il problema della funzione che non viene richiamata.

    Io il controllo lo faccio lato server con PHP. Però mi serve dire all'utente, qualora li dovesse inserire, che quei caratteri nel conteggio avranno un valore superiore ad 1.

    Cmq adesso faccio un paio di prove e ti faccio sapere. Grazie mille! Ciao!

  5. #5
    non so come spiegarlo, prova a mettere su il tutto,poi prova a compilare il campo con uno dei caratteri speciali e schiaccia invio dalla tastiera invece che usare il mouse;vedrai che non comparirà nessun alert, perchè la funzione non viene chiamata....forse bisogna usare unaltro evento invece di onChange,cmq il problema non dovrebbe essere del codice che ho scritto...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    L'evento principe per il controllo dei form e`:
    <form onsubmit="return nomefunzione(this);">

    Poi si possono usare altri eventi, ma questo e` l'unico che da` sicurezza che la funzione venga chiamata.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    A, ho capito. Si, ogni tanto capita, anche con altri script che ho.
    Però se io volessi fargli fare un controllo in tempo reale? Tipo uno script che conta in tempo reale quanti caratteri sono stati inseriti in una text area. Si potrebbe modificarlo per rilevare la presenza di quei caratteri e se presenti far apparire per esempio un div? Tipo quando si tenta di inserire in win uno di quei caratteri.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Per fare il conto in tempo reale, consiglierei l'evento onkeyup.

    Esempio:
    <input type="text" ... onkeyup="contacar(this);">

    dove contacar puo` essere di questo tipo:
    codice:
    function contacar(cc) {
      var vv = cc.value;
      var num = vv.length;
      var mm;
      if(mm = vv.match(/[\<\>]/g) );
        num += mm.length * 3;       // & l t ; / & g t ;
      if(mm = vv.match(/\&/g) );
        num += mm.length * 4;       // & a m p ;
      if(mm = vv.match(/[\"\']/g) );
        num += mm.length * 5;       // & q u o t ; / & a p o s ;
    
    alert("numero caratteri finali = "+num);
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    No, forse non mi sono spiegato. Non intendevo fare il conteggio in tempo reale ma monitorare il campo in tempo reale. La prima soluzione proposta faceva il controllo una volta che si era cliccato il pulsante invia. Invece io vorrei che il controllo venisse fatto ogni volta che viene inserito un valore all'interno di uno qualsiasi dei campi. Così se io scrivo

    il mio nick è 'mircov'

    nel momento in cui io vado a scrivere nel campo il carattere " mi appare un div con il messaggio "i caratteri ' & / ecc..."

    Un po' come quando si associa al click del mouse su un collegamento la visualizzazione di un div con un determinato id. Non so se mi sono spiegato con chiarezza. In caso negativo ditemelo che mi spiego meglio.

  10. #10
    ciao mick
    visto che siamo in tema avrei due domandine...
    che cambia tra campo.value.match(regexp) e regexp.test(campo.value)? quando dichiaro regexp questa diventa automaticamente un'oggetto(come ho letto su una guida per javascript 1.2)?
    avevo già provato a usare l'evento onkeyup(tra l'altro non ho ancora capito quando è case sensitive e quando no...),funzionava bene tranne che per il primo carattere digitato...come mai?

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.