Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197

    creare un lemento "<option>"

    se aggiungo un elemento option ad una lista creando l'elemento da zero funziona correttamente
    codice:
    var ciccio;
    ciccio = document.createElement("<option>");
    ciccio.text = 'alessio';	
    ciccio.value ='5';
    
    //aggiungo l'elemento alla lista 
    document.lst_mialista.options.add(ciccio);
    se voglio aggiungere un elemento option ad una lista creandolo a partire da un'altra lista non mi funziona
    codice:
    var ciccio;
    ciccio= document.lst_listadipartenza.options.item(document.listadipartenza.selectedIndex);
    	
    //aggiungo l'elemento alla lista
    document.lst_mialista.options.add(ciccio);
    mi dice che l'argomento passato non è valido, come se ciccio non fosse un'elemento "<option></option>"

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    controlla la sintassi della riga ciccio=...
    In quello che hai postato qui ci sono errori di sintassi (i riferimenti alla select sono diversi).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    Originariamente inviato da Mich_
    controlla la sintassi della riga ciccio=...
    In quello che hai postato qui ci sono errori di sintassi (i riferimenti alla select sono diversi).
    "ciccio=..." -> "ciccio =..."
    "lst_listadipartenza" -> "listadipartenza"

    scritto male nel post, il resto è ok ma...

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Un esempio....

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    function populate(aSelect) {
     newOption = document.createElement('OPTION');
     aSelect.add(newOption);
     newOption.value = "A";
     newOption.text  = "A";
     newOption = document.createElement('OPTION');
     aSelect.add(newOption);
     newOption.value = "B";
     newOption.text  = "B";
      newOption = document.createElement('OPTION');
     aSelect.add(newOption);
     newOption.value = "C";
     newOption.text  = "C";
      newOption = document.createElement('OPTION');
     aSelect.add(newOption);
     newOption.value = "D";
     newOption.text  = "D";
     newOption = document.createElement('OPTION');
     aSelect.add(newOption);
     newOption.value = "E";
     newOption.text  = "E";  
    } // function populate(aSelect)
    
    function svuota(aSelect) {
     //---------- Prima svuoto tutti valori tranne quello selezionato nella select selezionata
     value      = aSelect.value;
     numElement = aSelect.length;
     var i = 0;
     for (j=numElement-1;j>=0;j--) {
      curOption = aSelect.options(j);
      if (curOption.value != value) {
    	  aSelect.remove(j);
    	} // if (curOption.value != value) 
     } // for (j=numElement-1;j>=0;j--)
     //---------- adesso per ogni select del div (parent) rimuovo il valore scelto
     svuota2(aSelect,'sel1');
     svuota2(aSelect,'sel2');
     svuota2(aSelect,'sel3');
     svuota2(aSelect,'sel4');
     svuota2(aSelect,'sel5');
    } // function svuota(unValore)
    
    function svuota2(aSelect,selectDaSvuotare) {
     if (aSelect.id == selectDaSvuotare) {
      return;
     } // if (aSelect.id == selectDaSvuotare)
     var objSelectDaSvuotare = document.getElementById(selectDaSvuotare);
     numElement = objSelectDaSvuotare.length;
     for (j=numElement-1;j>=0;j--) {
      curOption = objSelectDaSvuotare.options(j);
      if (curOption.value == aSelect.value) {
    	  objSelectDaSvuotare.remove(j);
    	} // if (curOption.value == aSelect.value)
     } // for (j=numElement-1;j>=0;j--)
    } // function svuota2(aSelect,selectDaSvuotare)
    
    function ripopolaTutto() {
     ripopola('sel1');
     ripopola('sel2');
     ripopola('sel3');
     ripopola('sel4');
     ripopola('sel5');
    } // function ripopolaTutto()
    
    function ripopola(selectDaRipopolare) {
     var aSelect = document.getElementById(selectDaRipopolare);
     aSelect.innerHTML = '';
     populate(aSelect)
    } // function ripopola(selectDaRipopolare)
    
    //-->
    </script>
    
    </head>
    <body>
    <div id="group1">
    <select id="sel1" onchange="svuota(this)"></select>
    <select id="sel2" onchange="svuota(this)"></select>
    <select id="sel3" onchange="svuota(this)"></select>
    <select id="sel4" onchange="svuota(this)"></select>
    <select id="sel5" onchange="svuota(this)"></select>
    </div>
    
    
    
    <input type="button" value="Ripopola" onclick="ripopolaTutto()">
    
    <script language="JavaScript" type="text/javascript">
    <!--
    populate(document.getElementById('sel1'));
    populate(document.getElementById('sel2'));
    populate(document.getElementById('sel3'));
    populate(document.getElementById('sel4'));
    populate(document.getElementById('sel5'));
    //-->
    </script>
    
    </body>
    </html>

  5. #5
    Utente bannato
    Registrato dal
    Aug 2004
    Messaggi
    213
    Perche non semplicemente


    mySelect.options[mySelect.length] = new Option(text, value)


    ?

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    322
    ankio sto cercando di fare una funzione che mi aggiunga un valore in una option ma non mi funziona...

    function aggiungi(aForm,aSel) {
    var nAgg=prompt("Comprati/Venduti?","");
    aSel.options[aSel.length] = new Option(text, value)
    }

    praticamente quando richiamo la funzione passo il nome del form ...Aform e il nome della select.. aSel... ma dove metto nAGG? al posto di value?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    322
    ho risolto il tutto facendo 2 funzioni

    function elimina(sender){
    if (sender.options.length>0 && sender.selectedIndex!=-1)
    sender.options[sender.selectedIndex]=null;
    }

    function aggiungi(sender){
    var num=prompt("Comprati/Venduti?","");
    var eur=prompt("Al prezzo di?","");
    sender.options[sender.options.length]=new Option(num+' - '+eur+'€');
    }

    ora però volevo far si che se provo a cancellare l'ultima option di una select mi da errore.. o che non faccia niente

    ho provato quindi ad aggiungere in elimina() la riga

    if (sender.selectedIndex = sender.options.length-1) break;

    ma mi da errore... perchè?

    praticamente ho provato in una select con lunghezza 3.. controllo quindi che la option selezionata.. quindi l'ultima (2) sia uguale a 3--1=2 se lo è si ferma il ciclo.. ma mi da errore!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    A che serve quel break?
    break deve stare dentro un ciclo (for, while, ...) fuori non ha senso.

    E poi attenzine che = e` operatore di assegnamento. In JS (come in tutti i linguaggi moderni) l'operatore di confronto e` ==
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    322
    ah ho capito..
    quindi se volessi mettere quel controllo per far si che quando si avvera non mi prosegue come faccio?

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Smpre nella funzione elimina() ?

    Ad esempio:
    function elimina(sender){
    if (sender.options.length>0 && sender.selectedIndex!=-1 && sender.selectedIndex != sender.options.length-1)
    sender.options[sender.selectedIndex]=null;
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.