Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    onChange: primo elemento non selezionabile

    Salve,

    perchè quando associo un controllo javascript ad una Listbox per controllare l'evento onChange non mi seleziona il primo elemento al click del mouse ?

    Mi spiego:
    popolo una listbox da lettura database, ottengo quindi una lista.
    Ora vorrei selezionare gli elementi al suo interno e fin qui tutto Ok !!! Il problema lo riscontro soltanto quando devo selezionare il primo elemento della lista. Ma niente non riesco a far caricare i dettagli .... ne sapete qualcosa ?
    codice:
    <select size="1" name="utente" onChange="dettagli()">
    Ho tentato con l'evento onblur ma questo evento pressuppone che ci sia un tasto da premere x fargli perdere il focus e quindi scatenare l'evento.

    Suggerimenti ?????
    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  2. #2
    Reale_Augello
    Guest

    Che...

    ... cosa fa la funzione dettagli ?

  3. #3
    Popolo la Listbox con svariati record formato da circa 25 campi di grande dimensione. Tutto il database è caricato nella listbox
    Ora con una funzione split in javascript estraggo i campi separati da un marcatore e distribuisco gli stessi nella form, (nelle rispettive caselle di testo funzione "dettagli()") dopo aver selezionato un X utente dalla lista. Solo per il primo elemento non riesco a far apparire i dettagli nella form, però se selezioni prima il secondo e poi torno sul primo mi funziona.

    Non ci sono problemi di saturazione della memoria ne ho tantissima e ho anche controllato quanto mi occupa il database caricato in memoria.
    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  4. #4
    L'evento viene lanciato solo se il valore cambia, e se il primo valore è, come succede di default, quello visualizzato di default nella casella, se tu lo selezioni di nuovo non cambia nulla, quindi l'evento non parte.

    Scommettiamo che se tu selezioni il secondo, poi selezioni di nuovo il primo, la cosa funziona?

    La soluzione semplice è quella di inserire un primo elemento vuoto nella select; la soluzione un po' più sofisticata è fare partire l'intera pagina presupponendo che il primo valore sia già selezionato...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5

    Scommettiamo che se tu selezioni il secondo, poi selezioni di nuovo il primo, la cosa funziona?
    Questo lo avevo riferito nel mio ultimo post .... e me ne ero accorto.

    Allora, dimmi come si fa a rendere selezionato il primo elemento ?
    forse col focus ? ma non mi funziona così: window.nomeform.nomeselect.focus
    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  6. #6
    Non ci siamo capiti: se tra i vari option della select nessuno ha l'attributo selected="selected", quello che succede è che automaticamente il primo option è quello selezionato quando la pagina si carica.

    Ora, visto che l'evento onchange viene effettuato solo quando il valore della select CAMBIA, non succede nulla se tu selezioni di nuovo il primo elemento senza avere prima scelto un altro elemento; nota che questo succederebbe anche se tu avessi preselezionato con l'apposito attributo un altro valore della select...

    Una soluzione rapida può consistere le richiamare una volta sola la dettagli(); alla fine della pagina; in questo modo, non appena la pagina si carica, la funzione dettagli viene richiamata una volta proprio come se l'utente avesse selezionato il primo elemento, anche se in realtà non lo ha fatto.

    Mi sono spiegato?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    si grazie ho capito. Poi ho fatto anche delle prove col mettere una riga tipo "selezionare" come primo elemento nella listbox e ho visto che pur rudimentale mi evita il problema.

    Farò anche una prova come suggeritomi nell'ultimo post....
    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  8. #8
    Okay,

    ho messo dettagli() in nel body OnLoad e il primo risulta selezionato e quindi mi appaiono a video tutti i campi di quel record.

    grazie
    IMPOSSIBLE IS NOTHING - LOOK BEFORE YOU LEAP !!!

  9. #9
    Prego, di nulla.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

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.