Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    [IE] problema con radio button

    Ho un set di radio button (3), ed in base a quello che viene cliccato, a parte l'ovvia selezione del valore attribuito al singolo radio button, devo far attivare delle funzioni JavaScript.
    Fondamentalmente, le azioni sono due:
    una operazione di scrittura dati (il valore del radio button) in un altro campo (hidden) del form, che poi mi servirà per effettuare un'operazione di calcolo
    l'avvio di una funzione di show/hide per livelli nascosti.
    Codice PHP:
    <input name="prezzo" type="radio" id="prezzo1" value="10" onchange="showSlidingDiv(00); return false;myprice1();" />
    <
    input name="prezzo" type="radio" id="prezzo2" value="20" onchange="showSlidingDiv(01); return false;myprice2();" />
    <
    input name="prezzo" type="radio" id="prezzo3" value="30" onchange="showSlidingDiv(02); return false;myprice3();" /> 
    Il problema mi sorge con IE (come al solito!!!...).
    Se lego le funzioni JS all'evento onchange, IE si ubriaca e fa cose strane, del tipo che mostra il layer sbagliato, e cliccando sul radio button sbagliato... Cioè, se il valore 01 passato alla funzione showSlidingDiv dovrebbe mostrare il livello AAAA, IE mi mostra il livello BBBB, e magari non cliccando il secondo radio button, ma il primo...
    Insomma, va in tilt totale.
    Se uso l'evento onblur non funziona nulla.
    Se uso l'evento onclick le funzioni showSlidingDiv funzionano benissimo, ma nessuno dei radio button viene attivato!
    Ho provato anche aggiungendo un this.checked=true, ma senza alcun risultato!...
    Come capperi posso fare??? (maledetto IE...)
    metatad
    graphic & web design

  2. #2
    sicura che quando hai usato l'onclick this.checked=true non fosse dopo il return?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Huummm... dubbio... verifico subito. Si, messo prima. Ho fatto anche un tentativo con
    Codice PHP:
    document.form1.prezzo.checked=true 
    invece che
    Codice PHP:
    this.checked=true 
    e non cambia: il radio button rimane non attivato.


    P.S.
    sono sicuro, non sicura ...
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    prova a passare gli id alle funzioni tra apici...ovvero:

    onchange="showSlidingDiv('00');
    Jekkil

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    La funzione showSlidingDiv è usata estesamente sulla pagina, e funziona bene ovunque, senza apici.
    Peraltro, sui radio button funziona (sempre senza apici...), ma sull'evento onclick, che però - incredibilmente - non mi attiva il radio button, nemmeno con la funzione this.checked=true.
    Radio button che si attiva, se uso la funzione onchange, ma nel qual caso non va lo sliding...
    Insomma, non è questione di apici.
    Comunque, grazie.


    P.S.
    quelli tra parentesi, sono variabili, non ID
    metatad
    graphic & web design

  6. #6
    Questo ti funziona correttamente?
    codice:
    <input name="prezzo" type="radio" id="prezzo1" value="10" onclick="alert('test1');" />
    <input name="prezzo" type="radio" id="prezzo2" value="20" onclick="alert('test2');" />
    <input name="prezzo" type="radio" id="prezzo3" value="30" onclick="alert('test3');" />
    Le cose strane che riferisci sono dovute al fatto che usando onchange l'evento non si scatena appena fai click su uno dei radio button, ma appena gli togli il focus facendo click su qualunque altra parte della pagina. Cliccando in maniera successiva su due radio button, appena fai click sul secondo vedi lanciato l'evento del primo e non ci capisci più niente.
    Ecco perchè se vuoi essere compatibile con IE6 (non so le versioni successive) sarebbe meglio cercare di usare l'onclick.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Alla fine ho risolto, usando dei checkbox, così:
    Codice PHP:
    <input name="prezzo" type="checkbox" id="prezzo_0" onfocus="this.checked=true;document.getElementById('prezzo_1').checked=false;document.getElementById('prezzo_2').checked=false;" onclick="myprice1(); showSlidingDiv(00); return false" value="10" /> 
    Insopportabile IE...
    metatad
    graphic & web design

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.