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

    campo input con valori da array

    Ciao, avrei bisogno di creare una funzione che dato un array

    codice:
    miaVariabile = new Array(A,B, ...,Z);
    vada a cambiare il contenuto all'interno di un campo input text ogni volta che premo su un bottone...

    In pratica io ho l'input con il valore A, premo un pulsante e il valore cambia in B, poi in C e così via in base ai valori contenuti nell'array.

    è possibile?
    Griggio Claudio

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ciao,

    ho utilizzato jquery!
    forse e' poco elegante ma io l'ho fatto così(premetto che ho usato una pagina che avevo gia' creato), alcune cose sono inutili(html), ma funziona:

    Jquery
    var mioArray=['pippo','pluto','topolino'];
    var conta=0;
    $('#cambiaContenuto').click(function(){
    document.datiUtenti.nome.value=mioArray[conta];
    conta++;
    if (conta>2){conta=0;}
    });

    html
    <div class="datiVisibilita">

    <input id="cambiaContenuto" type="button" value="Cambia contenuto"></p></div>
    <div id="nome" class="dati">

    Nome:<input id="nomeInput" class="inserisci" type="text" name="nome" ></p></div>



  3. #3
    grazie adesso provo...
    Griggio Claudio

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    e se sostituisci la riga:
    if (conta==mioArray.length){conta=0;}

    non avrai bisogno di specificare la lunghezza dell'array............


  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    O usi gli iteratori nativi (controlla la compatibilità dei browsers):

    codice:
    var miaVariabile = [ "A", "B", "C", "D", "etc." ];
    
    var miaCollezione = new Iterator(miaVariabile);
    
    alert(miaCollezione.next()[1]); // "A"
    alert(miaCollezione.next()[1]); // "B"
    alert(miaCollezione.next()[1]); // "C"
    alert(miaCollezione.next()[1]); // "D"
    alert(miaCollezione.next()[1]); // "etc."
    
    // a questo punto genera errore!
    alert(miaCollezione.next());
    O ti costruisci tu un iteratore:

    codice:
    function Iteration (oCollection) {
    	this.current = 0;
    	this.collection = oCollection;
    }
    
    Iteration.prototype.next = function () {	
    	return this.collection[this.current++ % this.collection.length];
    }
    
    // ........
    
    var miaVariabile = [ "A", "B", "C", "D", "etc." ];
    
    var miaCollezione = new Iteration(miaVariabile);
    
    alert(miaCollezione.next()); // "A"
    alert(miaCollezione.next()); // "B"
    alert(miaCollezione.next()); // "C"
    alert(miaCollezione.next()); // "D"
    alert(miaCollezione.next()); // "etc."
    
    // riparte da 0...
    alert(miaCollezione.next()); // "A"

  6. #6
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    P.S.: Ti consiglio il secondo esempio. Dovrai fare qualcosa del genere:

    codice:
    <script type="text/javascript">
    function Iteration (oCollection) {
    	this.current = 0;
    	this.collection = oCollection;
    }
    
    Iteration.prototype.next = function () {	
    	return this.collection[this.current++ % this.collection.length];
    }
    
    var miaVariabile = [ "A", "B", "C", "D", "etc." ];
    var miaCollezione = new Iteration(miaVariabile);
    </script>
    <form name="mioForm">
    <input type="text" name="miaTextbox" /><input type="button" onclick="this.form.miaTextbox.value = miaCollezione.next();" value="cambia" />
    </form>

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 © 2026 vBulletin Solutions, Inc. All rights reserved.