Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    70

    aggiungere ad una funzione sul onFocus

    ho un input
    <form name="DATI">
    <input type="text" name="TESTO" onFocus="Javascript:Funzione1()">
    </form>

    voglio aggiungere con javascript Funzione2 a quella esistente sul Focus:
    document.DATI.TESTO.onfocus = function(){Funzione2()}

    Se faccio così mi sovrascrive la precedente. cosa devo fare? Grazie.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se non vuoi modificare l' onfocus nell' html
    e non vuoi/puoi modificare Funzione1 in modo che richiami, ove opportuno, anche Funzione2
    devi usare attachEvent e addEventListener,
    questi ti permettono di eseguire + di un' istruzione all' attivarsi del gestore di evento

    x es.
    aggiunge il richiamo a Funzione2 su tutti i campi testi del form
    codice:
    function Funzione2(){
      alert('ho il focus');
    }
    
    function _attachToEvent(obj, name, func) {
      if(obj.addEventListener) obj.addEventListener(name, func, false);
      else if(obj.attachEvent) obj.attachEvent('on'+name, func);
    }
    
    window.onload=function(){
      var f=document.DATI;
      for(var k=0;k<f.elements.length;k++){
        if(f.elements[k].type=='text'){
          _attachToEvent(f.elements[k],'focus',Funzione2);
        }
      }
    }
    occhio che se decidi di usare questo sistema ci sono alcuni accorgimenti da considerare...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    70
    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    70

    Puoi aiutarmi ancora ?

    Puoi aiutarmi ancora ?
    ************************************************** ***
    1) Non posso modificare il metodo focus sull'HTML;
    2) Devo passare l'oggetto this alla funzione ma la variabile func indica solo il nome della funzione;
    3) Mi restituisce Errore "incompatibilità tra tipi";

    ************************************************** ***

    function Prova(obj){
    alert("sono sull'oggetto " + obj.name);
    }

    var name="focus";
    var func = "Prova";

    function CreaFocus(){
    var nb = document.DATI.elements.length;
    var i = 0;
    for (var i=0;i<nb;i++){
    var e = document.DATI.elements[i];
    if( (e.type == "text") ||
    (e.type == "select-one") ||
    (e.type == "checkbox")){

    if(e.addEventListener) e.addEventListener(name, func, false);
    else if(e.attachEvent) e.attachEvent('on'+name, func);
    }
    }
    }

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    immaginavo dovessi passare il riferimento all' oggetto,
    l' unico modo che personalmente conosco e' questo
    codice:
    function Prova(obj){
    alert("sono sull'oggetto " + obj.name);
    }
    
    var name="focus";
    
    	function keepRef(ths){
    		ths.funz = function(){Prova(ths)};
    	}
    
    function CreaFocus(){
    var nb = document.DATI.elements.length;
    var i = 0;
    for (var i=0;i<nb;i++){
    var el = document.DATI.elements[i];
    if( (el.type == "text") ||
    (el.type == "select-one") ||
    (el.type == "checkbox")){
    
    	keepRef(el);
    
    	if(el.addEventListener) el.addEventListener(name, el.funz, false);
    	else if(el.attachEvent) el.attachEvent('on'+name, el.funz);
    }
    }
    }
    
    window.onload=CreaFocus
    ciao

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.