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

    proprietà value di un oggetto select

    Ciao.

    Mi sono imbattuto casualmente nella proprietà "value" di un oggetto "select" (non di un elemento dell'array "options", ma proprio dell'oggetto "select"). Uso da sempre la proprietà "selectedIndex" per modificare il valore di un select box da JS, ma ho scoperto che anche effettuando un assegnamento sulla proprietà "value" il select box viene modificato correttamente.

    Ovvero, anziché impostare:

    elemento_select.selectedIndex = 3;

    fare un assegnamento del tipo:

    elemento_select.value = 'pippo';

    Mi pare una soluzione molto più comoda, ma la trovo scarsamente documentata in rete (e.g. il sito del W3C non la riporta e molti siti riportano esplicitamente che gli elementi "select" non hanno la proprietà "value" e pertanto bisogna impostare la "selectedIndex") e temo che possa essere scarsamente supportata dai browser.
    Sono praticamente sicuro che anni fa non era supportata, quindi mi domando se qualcuno sa darmi indicazioni su quali browser la supportano e a partire da quale versione.

    Grazie.
    Nella maggior parte dei casi il problema non e' nel programma, ma tra la sedia e la tastiera.
    (Marco Bernardini)

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    non di un elemento dell'array "options", ma proprio dell'oggetto "select"
    non mi risulta che l'elemento select inteso come contenitore di options abbia un value (valore), e oltretutto a che pro dovrebbe averlo? E a cosa potrebbe servire?

    <select id="miaselect" name="miaselect" value="cosa serve">
    ...
    </select>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Scusa, forse non sono riuscito a spiegarmi bene, io dicevo della possibilità di usare questa proprietà (che non mi risulta abbia un corrispettivo nel codice HTML o almeno se ce l'ha non vedo a cosa possa servire, come dici tu...) per impostare il valore di un select box senza utilizzare la "selectedIndex".

    Faccio un esempio più dettagliato:

    <select id="pippo">
    <option value="10" selected="selected">dieci</option>
    <option value="20">venti</option>
    <option value="30">trenta</option>
    <option value="40">quaranta</option>
    <option value="50">cinquanta</option>
    </select>

    <script type="text/javascript">
    document.getElementById('pippo').value=30;
    </script>

    Se mandi in esecuzione questo codice vedrai che verrà selezionata la terza opzione del select box. Per quanto mi risultava finora, invece, il modo corretto per farlo era l'istruzione:

    document.getElementById('pippo').selectedIndex=2;

    Mi domandavo se la possibilità di modificare l'elemento selezionato da Javascript facendo un assegnamento sulla proprietà "value" anziché utilizzando "selectedIndex" fosse supportata o meno e da quando.
    Nella maggior parte dei casi il problema non e' nel programma, ma tra la sedia e la tastiera.
    (Marco Bernardini)

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    function seleziona(obj,vl) {
      for (var i=0;i<obj.options.length;i++) {
        if(obj.options[i].value==vl) obj.selectedIndex=i;
      }
    }
    
    seleziona(document.getElementById('pippo'),'30');
    oppure potresti usare jquery o prototype... ma non e' il mio campo
    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

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da lexip1313
    Scusa, forse non sono riuscito a spiegarmi bene, io dicevo della possibilità di usare questa proprietà (che non mi risulta abbia un corrispettivo nel codice HTML o almeno se ce l'ha non vedo a cosa possa servire, come dici tu...) per impostare il valore di un select box senza utilizzare la "selectedIndex".

    Faccio un esempio più dettagliato:

    <select id="pippo">
    <option value="10" selected="selected">dieci</option>
    <option value="20">venti</option>
    <option value="30">trenta</option>
    <option value="40">quaranta</option>
    <option value="50">cinquanta</option>
    </select>

    <script type="text/javascript">
    document.getElementById('pippo').value=30;
    </script>

    Se mandi in esecuzione questo codice vedrai che verrà selezionata la terza opzione del select box. Per quanto mi risultava finora, invece, il modo corretto per farlo era l'istruzione:

    document.getElementById('pippo').selectedIndex=2;

    Mi domandavo se la possibilità di modificare l'elemento selezionato da Javascript facendo un assegnamento sulla proprietà "value" anziché utilizzando "selectedIndex" fosse supportata o meno e da quando.
    Credo, ma non sono sicurissimo che la sintassi selectedIndex sia la più corretta e supportata da tutti i browser (anche i più vecchi) mentre riferirsi al value è più recente, oltretutto il value potresti ometterlo pertanto io preferisco usare selectedIndex a scanso d'equivoci o mal funzionamenti.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.