Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Selezionare in base inziali

    Ho una select multipla di questo tipo

    <select size="18" multiple="multiple">
    <option value="1">Valore</option>
    </select>

    In questa select richiamo tramite scripting ASP una serie di valori... ora vorrei piazzare sopra questa select un <input type="text" /> scrivendo dentro questo campo nella select dovrebbero comparire (rimanere in realta') solo il valori che rispondono alle lettere ... es

    stringa vuota = tutta la lista
    mutato
    pippo
    pappa
    passa
    reale

    se scrivo "p"
    pippo
    pappa
    passa

    se scrivo "pa"
    pappa
    passa

    se scrivo "pas"
    passa

    E' possibile impostare una selezione di questo tipo con JS?
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  2. #2
    Reale_Augello
    Guest

    Prova...

    ... qui:

    http://www.maiueb.it/forumhtmlit/mutato.htm

    Sicuramente è pieno di bug (ho avuto poco tempo per testarlo).
    Fammi sapere dov'è migliorabile.

    Ciao !

  3. #3

    SEI UN GENIO!!!

    Avrei scommesso tutti i miei (pochi) averi che ti ci saresti buttato subito :gren:

    La prima cosa di cui mi sono accorto e' che la selezione avveniva sul value e non sul text: quindi ho tolto di mezzo value e ho piazzato un bel text (in grassetto).

    In questo modo pero' ho visto che il value cambia e diventa uguale al text (ora gli ho dato un valore predefinito). Si puo' evitare questo? Cioe' fare in modo che cambi solo il text ma il suo value rimanga quello originale? Ho provato, ma senza successo...

    Per il resto mi sembra perfetta. L'unica cosa che cambierei e' il case sensitive.

    E per fare una cosa del genere ma che individui la stringa digitata in tutta la option? indipendentemente se si trova all'inizio, la fine o al centro? da dove dovrei partire?

    Cmq, Reale tu sei un mito con JS! :quipy:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>mutato</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style>
    input, select {width:200px;}
    p {margin-left:50px; margin-top:20px; margin:bottom:0;}
    </style>

    <script language="JavaScript">

    function MM_jumpMenu(targ,selObj,restore){ //v3.0
    eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
    if (restore) selObj.selectedIndex=0;
    }

    var elems=new Array();

    function CaricaVettore() {
    for (i=0; i<document.elenco.seleziona.options.length; i++)
    elems[i]=document.elenco.seleziona.options[i].text;
    }

    function Genera(e,f) {
    var j=0;
    for (i=0; i<elems.length; i++)
    if (elems[i].indexOf(e)==0)
    {
    f.seleziona.options[j]=new Option(elems[i], 'http://www.value-errato.it');
    j++;
    }
    f.seleziona.options.length=j;
    }

    </script>

    </head>

    <body onLoad="CaricaVettore();">
    <form name="elenco">



    <input name="scegli" type="text" id="scegli" onKeyUp="Genera(this.value, this.form);">
    </p>



    <select name="seleziona" id="seleziona" multiple="multiple" size="10" onChange="MM_jumpMenu('parent',this,0)">
    <option value="http://www.frequenze.it">Nomine Mutato</option>
    <option value="http://www.html.it">Reale Augello</option>
    <option value="http://www.html.it">Vatte la pesca</option>
    <option value="http://www.html.it">Ulivo e Procione</option>
    <option value="http://www.html.it">Uliveto</option>
    </select>
    </p>
    </form>
    </body>
    </html>
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  4. #4
    :quote: Up.

    Non riesco a risolvere... il value cambia qualunque cosa faccia...
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  5. #5
    Reale_Augello
    Guest

    Prova...

    ... a dare un'occhiata adesso.


  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se hai bisogno di value indipendenti dai text devi tenere traccia dei value iniziali, così come salvi nell' array i text devi salvare i value
    codice:
    function CaricaVettore() { 
    for (i=0; i<document.elenco.seleziona.options.length; i++) 
    elems[i]=[document.elenco.seleziona.options[i].text,document.elenco.seleziona.options[i].value]; 
    } 
    
    function Genera(e,f) { 
    var j=0; 
    
    for (i=0; i<elems.length; i++) 
    if (elems[i][0].toLowerCase().indexOf(e)==0) 
    { 
    f.seleziona.options[j]=new Option(elems[i][0], elems[i][1]); 
    j++; 
    } 
    f.seleziona.options.length=j; 
    }
    il lowercase sistema il problema del case-sensitive

    x ricercare non necessariamente da inizio stringa devi usare le regexp

  7. #7
    Reale_Augello
    Guest

    Xinod...

    ... dai un'occhiata qui:

    http://www.maiueb.it/forumhtmlit/mutato.htm

    È la soluzione che ho proposto a Mutato: cosa ne pensi ?

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649


    x curiosità, se non ricordo male, Bruno una volta aveva postato una regexp a pattern variabile senza uso di eval,
    me la sono sognata

  9. #9
    Reale_Augello
    Guest

    ...

    Originariamente inviato da Xinod


    x curiosità, se non ricordo male, Bruno una volta aveva postato una regexp a pattern variabile senza uso di eval,
    me la sono sognata
    Non saprei dirti...
    Quali sarebbero le migliorie ? Ho letto che la funzione eval sarebbe da evitare (non molto performante). Confermi ?


  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    sì, ma si parla anche di un mancato supporto in futuro

    p.s. manca la i dopo la g nella RegExp o sbaglio?

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.