Come sempre la soluzione è più semplice di quanto di creda!
Non mi era venuto in mente di passare a funzione all'interno di una variabile.
La funzione funziona
A beneficio di tutti però ora la metto qui!
e quindi il codicecodice:<script type="text/javascript"> //<![CDATA[ // Inserisce la data nel campo "anno" var insAnno = function() { var data = new Date(); this.value = data.getFullYear(); } // anno() // Gestione degli eventi del mouse (e non solo)) function gestoreEvento(id, evento, nomeFunzione) { if (element(id).addEventListener) { // Mozilloidi element(id).addEventListener(evento, nomeFunzione, false); } else if (element(id).attachEvent) { // M$ element(id).attachEvent('on' + evento, nomeFunzione); } } // gestoreEvento() window.onload = function() { element('data-odierna').innerHTML = creaData(); if(document.getElementsByTagName && document.createElement) { Focus(); // Evidenzia il fuoco di un elemento } //element("anno").onfocus = function() {var data = new Date(); this.value=data.getFullYear();} gestoreEvento('anno', 'click', insAnno); //element("stato").onchange = alert(this.value); } // onload() //]]> </script>
Ora così, facendo click sulla casella di testo vi apparirà l'anno n corso (2008).codice:<form fa qualcosa > <input type="text" id="anno" name="anno" value="" /> </form>
per chi non conosce la "gracefull degradation e progressive enhancement" nel form gli elementi non hanno più i gestori di evento (onclick, onvattelapesca) ma questi sono scatenati dalla funzione di cui sopra, il sistema funziona lo stesso con quasi tutti i browser, ma per quelli molto vecchi o con i browser dei telefonini dove il javascript è spesso implementato in modo più embrionale, il form funziona comunque, solo che l'anno ce lo dovrete scrivere a mano e non basterà più solo farci click sopra![]()


Rispondi quotando