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

    Scegliere il value di una option a caso

    Sto cercando di fare in modo che al click di un pulsante venga scelta, tra le option di una select, una a caso, e di questa venga presa il value e messa in una variabile.
    Ho provato così:
    codice:
    function opzioneRandom() {
    opzioni=new Array();
    opzioni=document.getElementById("mySelect").getElementsByTagName("option");
    alert(opzioni.lenght);
    chooseRandom=Math.floor(Math.rand()*opzioni.lenght);
    myVar=opzioni[chooseRandom].getAttribute("value");
    alert(myVar);
    }
    ma alert(opzioni.lenght); mi da undefined, anche se io clicco quando ormai la select è bella e comparsa!

    Centra qualcosa forse col fatto che la select prima viene immessa con ajax? ( non credo )

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    length non lenght

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Originariamente inviato da br1
    length non lenght

    ciao
    Grazie ho risolto, inoltre mi ero confuso con php che ha mt_rand scrivendo Math.rand() al posto di random

    Apparte questo, ti giuro che io in qualsiasi mio script avevo scritto sempre lenght al posto di length, e mi ha sempre funzionato tutto !
    Incredulo ho controllato nella "Bibbia di Javascript" che ho a casa e in effetti hai ragione tu, si scrive così

    Ma come mai i browser certe volte non distinguono altre si?


    EDIT: E se volessi selezionare l'option di cui ho preso il value?

    Così non va
    opzioni[chooseRandom].setAttribute("selected", "selected");

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da Mega69
    Ma come mai i browser certe volte non distinguono altre si?
    non esageriamo: lenght non esiste, nessun browser puo' procedere come se nulla fosse
    piu' probabilmente spesso sbagliando ti sei sbagliato, scrivendo correttamente length
    EDIT: E se volessi selezionare l'option di cui ho preso il value?

    Così non va
    opzioni[chooseRandom].setAttribute("selected", "selected");
    ma se hai gia' un indice, chooseRandom, cosa ti costa settare il selectedIndex della select a quell' indice?

  5. #5
    Originariamente inviato da Xinod
    non esageriamo: lenght non esiste, nessun browser puo' procedere come se nulla fosse
    piu' probabilmente spesso sbagliando ti sei sbagliato, scrivendo correttamente length

    ma se hai gia' un indice, chooseRandom, cosa ti costa settare il selectedIndex della select a quell' indice?
    In effetti ragionandoci un pò, io avevo fatto dei cicli tipo
    for(i=0; i!=array.lenght; i++)
    {
    array.setAttribute("href", "page.htm");
    }

    In pratica, quando non c'erano più elementi, il ciclo si stoppava da solo dando errore, per questo funzionava lo stesso!

    Fortuna che ho fatto l'errore in un solo file js.


    Per quanto riguarda la tua soluzione non ho mai fatto niente del genere ( credevo che selectedIndex fosse di sola lettura ). Ci provo lo stesso, sperando di non dovervi più importunare con le mie solite sparate

    EDIT: Ci sono riuscito
    document.getElementById("mySelect").selectedIndex= chooseRandom;

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.