Ciao,
posso capire quale evento accade in un campo input da una funzione?
esempio
la funzione ciao() dovrebbe capire se è il focus o il blur che sta avvenendo.codice:<input name="pippo" id="pippo" onfocus="ciao(evet)" onblur=ciao("event")>![]()
Ciao,
posso capire quale evento accade in un campo input da una funzione?
esempio
la funzione ciao() dovrebbe capire se è il focus o il blur che sta avvenendo.codice:<input name="pippo" id="pippo" onfocus="ciao(evet)" onblur=ciao("event")>![]()
Ciao,
tramite window.event.type dovresti sapere quale evento è stato scatenato.
Ciao
Mirko Agrati
WEB : http://mirkoagrati.110mb.com
RSS : http://feeds.feedburner.com/MirkoAgratiArticoli
codice:function ciao(event) { if (event.type == "focus") { alert("focus"); } if (event.type == "blur") { alert("blur"); } }
window.event.type è però proprietario IE, esiste un modo analago per catturare l'evento in Firefox e Affini?
Il blocco di codice che ti ho scritto funziona in tutti i browser, testato.
si lo so,ma io setto le funzioni in questo modo
ho provato a scrivere inputs[i].onfocus=function(){HighLight(this,event) ma mi và in errore, per questo volevo capire cosa usare con firefox al posto di window.event.typecodice:function SetInput() { /*Setto tutti i campi input*/ inputs=document.getElementsByTagName('input'); for(i=0;i<inputs.length;i++) { inputs[i].onfocus=function(){HighLight(this)}; inputs[i].onblur=function(){DownLight(this)}; } /*Setto tutti i campi input*/ selects=document.getElementsByTagName('select'); for(i=0;i<selects.length;i++) { selects[i].onfocus=function(){HighLight(this)}; selects[i].onblur=function(){DownLight(this)}; } }
L'errore è sicuramente nelle funzioni Highlight e Downlight, in quanto questo codice funziona, provalo (provato io ora in FF e IE)
codice:function ciao(control, event) { if (event.type == "focus") { control.value = "1"; } if (event.type == "blur") { control.value = "2"; } } function SetInput() { /*Setto tutti i campi input*/ inputs=document.getElementsByTagName('input'); for(i=0;i<inputs.length;i++) { inputs[i].onfocus=function(){ciao(this,event)}; inputs[i].onblur=function(){ciao(this,event)}; } }
Si, se usi solo IE, ma con firefox le funzioni qui sotto mi dicono
Errore: event is not defined
File sorgente: /General.js
Riga: 131codice:function HighLight(Obj,event) {//document.getElementById&&!document.all if(document.all==undefined) {//Netscape Firefox if(event.type=="focus") {Obj.setAttribute("class","Onfocus");} if(event.type=="blur") {Obj.setAttribute("class","");} } else {//IE if(event.type=="focus") {Obj.setAttribute("className","Onfocus");} if(event.type=="blur") {Obj.setAttribute("className","");} } } function SetInput() { //Setto tutti i campi input inputs=document.getElementsByTagName('input'); for(i=0;i<inputs.length;i++) { inputs[i].onfocus=function(){HighLight(this,event)}; inputs[i].onblur=function(){HighLight(this,event)}; } //Setto tutti i campi input selects=document.getElementsByTagName('select'); for(i=0;i<selects.length;i++) { selects[i].onfocus=function(){HighLight(this,event)}; selects[i].onblur=function(){HighLight(this,event)}; } }
Ascolta, c'è qualcosa di poco chiaro. Ho testato il blocco di codice che ti ho postato in FireFox e funziona al 100%. Ora esamino meglio il tuo codice e vedo se c'è qualche errore, tu intanto prova il mio e dimmi... voglio capire perchè a me funziona e a te no.
Edit: A supportare ulteriormente quel che ti dico, guarda questa pagina:
http://www.w3schools.com/htmldom/dom_obj_event.asp
Come puoi vedere l'oggetto "event" è supportato in FF sin dalla versione 1, con tutte le sue proprietà, incluso type. Ci deve essere qualche errore di sintassi o nel come dichiare le funzioni/inclusioni/quant'altro...
Edit2: Puoi postarmi la parte di codice HTML dove includi il file JS? Il problema potrebbe essere proprio li...
il codice lo puoi includere in qualsiasi pagina, l'intento era quello di far eseguire all'evento body onload una funzione che rilevasse tutti gli input/select e gli associasse il focus e blur.
Credo che come dici tu, il problema sia nel passare alla funzione 2 parametri invece che 1, in fatti se passo event come dici tu il codice funziona, il problema sorge se devo passare più di un parametro..![]()