15 Stringhe 2
Riprendendo lo script del form delle lezioni precedenti e non ancora finito, dovevamo trasformare il testo inserito nel campo cognome in maiuscolo. Ecco il codice HTML
<table> <tr> <td>Cognome</td> <td><input type="text" id="cognome"></td> </tr> <tr> <td>Età</td> <td><input type="text" pattern="\d*" id="eta" size="3" maxlength="3"></td> </tr> </table> <input type="button" id="btn_OK" value="OK">
Cognome | |
Età |
e qui il js che usava la funzione blur sull’evento di abbandono del campo
<script type="text/javascript" src="jquery-3.2.1.js"></script> <script type="text/javascript"> function cambia_cognome() { $("#cognome").val(3*2); } $('#cognome').blur(cambia_cognome); </script>
Avevamo accennato al fatto che alcuni script js vanno caricati solo all’effettivo caricamento del DOM e delle varie possibilità per ovviare all’inconveniente dei caricamenti asincroni. Uno tra questi è la creazione di funzioni anonime , intanto ne approfitto anche per cambiare nome alla funzione:
function () { $('#cognome').blur(forza_maiuscolo); }
come si evince questa è una funzione anonima, in quanto non ne viene dichiarato il nome.
Ora utilizzo la funzione per le stringhe toUpperCase che trasforma il contenuto in maiuscolo.
function forza_maiuscolo() { var cognome = $("#cognome").val(); $("#cognome".val( cognome.toUpperCase()) ); }
abbiamo però un punto debole nel codice, nel campo input del cognome può essere passato qualsiasi tipo di dato anche niente, per cui js non sa che invece noi vogliamo accettare solamente una stringa e la funzione toUpperCase potrebbe essere un po’ azzardata, forziamo quindi la precedente costruzione della variabile cognome al tipo stringa con la keyword String (ricordate sempre il case sensitive, quindi l’iniziale maiuscola):
var cognome = String( $("#cognome").val() );
a questo punto js non ha dubbi sul tipo di variabile costituita, infatti se adesso provo ad inserire nel mio IDE
cognome.
Otterrò, qualora l’IDE lo preveda, una serie di suggerimenti dei metodi associati alle stringhe.