Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Abilita/Disabilita inserimento form

    Ho un campo nel quale non voglio che l'utente inserisca i caratteri doppi apici, slash e dollaro. Il controllo lo faccio mediante espressioni regolari ed è funzionante in quanto se il campo contiene almeno uno di questi caratteri visualizzo mediante alert un avviso.
    Non mi rimane che bloccare l'inserimento del form nel caso in cui venga trovato l'errore.
    Io vorrei che ogni volta si perde il focus dall'oggetto, venga richiamata la funzione che controlla il corretto inserimento dei dati; nel caso in cui trova un errore, mi visualizzi l'avviso e mi blocchi il pulsante fino a quando l'utente non corregge i dati nel campo.
    Come si fa?
    Vi riporto qui le righe di codice di quanto descritto sopra....se riuscite ad adattarlo...mi fate un grande piacere...

    Grazie in anticipo.

    <?
    ....
    while (($i < $tot) and ($b_row = mssql_fetch_row($query_incroc)))
    {
    $variabile='desc_carat'.$i;
    $$variabile=$b_row[0];
    $campo = $b_row[1];
    if ($a_row[$i]=='') $a_row[$i]='';
    if ($$variabile == 'note')
    {
    $et_note=$$variabile;
    $cp_note=$$campo;
    $i++;
    $y=$i;
    }
    else
    {
    $k=$i+1;
    print '<TD><TABLE><TR><TD>'.$$variabile.'</TD></TR><TR><TD><INPUT name="carat'.$k.'"></TD></TR></TABLE>';
    $i++;
    $max++;
    }
    ?>

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    E' codice php. Non è detto che la gente qua lo conosca. Di più per potere aiutarti bisognerebbe quale tabella usi, il suo contenuto, etc ...

    Posta il codice della pagina generata da php.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Originariamente inviato da badaze
    E' codice php. Non è detto che la gente qua lo conosca. Di più per potere aiutarti bisognerebbe quale tabella usi, il suo contenuto, etc ...

    Posta il codice della pagina generata da php.

    Si ok hai ragione...potrebbe anche essere che la gente qua non lo conosca, ma io come faccio a chiedere aiuto su un argomento del genere dove ho sia php che Javascript legati?!?!?!?

    Cmq, a parte le 20 righe di codice php (che ho riportato per aiutarvi), la parte che deve interessare è la seguente:

    <TD><TABLE><TR><TD>'.$$variabile.'</TD></TR><TR><TD><INPUT name="carat'.$k.'"></TD></TR></TABLE>

    cioè il campo con nome "carat'.$k'" è il campo da controllare. Ha questa sintassi in quanto non so a priori quanti campi avrò, il loro numero dipende da una variabile. Quindi $k assume valori da 1 a 15, ad esempio "carat1", "carat2", "carat3", etc.
    Io quindi vorrei che l'utente, ogni volta che una di queste caratteristiche perde il focus, venga avvisato se i dati inseriti contengono ",/,$ e quindi non venga permesso l'inserimento del form fino alla correzione del campo.

    Spero di esser stato chiaro.

  4. #4

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Puoi fare cosi ( ma il codice è da adattare alla tua situazione )

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    
    function controllaTutti() {
     oColl = document.getElementsByTagName('INPUT');
     for (i=0;i<oColl.length;i++) {
      curInp = oColl.item(i);
    	if ( curInp.type == 'text' && curInp.name.substr(0,5) == 'carat') {
    	 controlla(curInp);
    	} // if ( curInp == 'text' and curInp.name.substr(0,5) == 'carat')
     } // for (i=0;i<oColl.length;i++)
    } // function controllaTutti()
    
    function controlla(obj) {
     valore = obj.value;
     if (valore.indexOf("$")>=0 || valore.indexOf('"')>=0 || valore.indexOf('/')>=0) {
      obj.style.backgroundColor = 'yellow';
     } else {
      obj.style.backgroundColor = '';  
    	//obj.focus()
     } // if (obj.value.match(pattern)
    } // function controlla(obj)
    //-->
    </script>
    
    </head>
    <body>
    <table summary="">
    <tr>
    <td>1</td><td><input type="text" name="carat1" onblur="controlla(this)"></td>
    </tr>
    <tr>
    <td>2</td><td><input type="text" name="carat2" onblur="controlla(this)"></td>
    </tr>
    <tr>
    <td>3</td><td><input type="text" name="carat3" onblur="controlla(this)"></td>
    </tr>
    </table>
    <input type="button" value="Controlla tutti" onclick="controllaTutti()">
    </body>
    </html>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    ok grazie Mr badaze, ci provo.


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 © 2026 vBulletin Solutions, Inc. All rights reserved.