Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    17

    Problema con onchange in Firefox

    Ciao a tutti, ho il seguente problema:

    se scrivo <SELECT onchange='mia_funzione();'>...

    in Firefox sembra che sia impossibile eseguire l'azione al momento del cambio di selezione nela tendina del select. Invece questo avviene correttamente in IE. So che onchange e' implementato diversamente nei due browser, ma per quel che vedo funziona come mi aspetterei in IE piu' che in Firefox (e questo mi sembra sorprendente). Qualcuno e' a conoscenza di un modo per eseguire l'onchange in Firefox come in IE? Un'alternativa potrebbe essere "onclick", che sembra funzionare in modo uguale nei due browser. Tuttavia non voglio eseguire la mia funzione al momento del click sulla tendina, ma solo dopo aver eseguito una selezione (perche' "mia_funzione()" deve applicarsi sul risultato della selezone).

    Grazie

  2. #2
    e invece l'evento change e' gestito correttamente da Firefox. :master:
    dovresti postare un po' del codice che ti da' problemi.

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    17

    possibile soluzione

    Hai ragione, sbagliavo io a "condannare" l'onchange di firefox. A un piu' attento esame ho scoperto (non lo sapevo, non sono espertissimo di javascript e mi sto facendo la mia esperienza a forza di errori) che era un problema di invio di eventi. Mi spiego:

    il mio select era originariamente fatto nel seguente modo:

    <SELECT onchange='my_function();'>

    e la funzione era definita come:

    function my_function(e)
    {
    if(!e)
    e=window.event;

    var srg=(e.target)?e.target:e.srcElement;

    [.....]
    }

    Facendo delle prove ho scoperto che era meglio definire il select cosi':

    <SELECT onchange='my_function(event);'>

    cioe' passare l'oggetto "event" alla funzione. Cosi' facendo le cose sembrano andare anche in Firefox (in IE andava anche prima perche' "e", pur essendo nulla all'ingresso della funzione, veniva riassegnata da window.event). Chiedo pero' a qualche esperto che abbia voglia e tempo se sia possibile avere una pillola o almeno un piccolo riassunto di come vengano gestite questi eventi nei due browser, in particolare se la sintassi che ho usato e' la piu' corretta e generale e quale sia la differenza fra e.target ed e.srcElement, che non ho trovato facilmente nelle varie documentazioni.

    Grazie in anticipo

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