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

    Riguardo l'attuale valure di un field

    Ciao a tutti,

    spiego prima lo scopo:

    Vorrei fare una lista, contenente molti nomi di oggetti ed un text field... ora all'inserire di una parola nel field vorrei che gli oggetti che non hanno ad iniziale la lettera inserita, scomparissero, e così via ad ogni inserimento di lettera aggiuntiva.

    La soluzione:

    metterei tutti gli oggetti in textfields readonly, oppure in div con id name il nome dell'oggetto. All'inserimento della prima lettera nel text field, farei in modo che "display: none" per gli oggetti aventi come iniziale quella/e lettera/e.

    Il problema:

    Come fare a selezionare (per impostarvici il display: none) tutti gli oggetti con iniziale il valore del textfield ? È possibile evitare il submit del form vero ? perchè dato che i nomi degli oggetti sono contenuti all'interno di un database, di volta in volta il database verrebbe eccessivamente affaticato, e vorrei sviluppare questa cosa proprio per evitare questo problema.

    Grazie 1000 spero che qualcuno sappia aiutarmi
    SGr33n

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Forse sono io che non capisco, ma ci sono punti oscuri e mi pare di vedere un po' di confusione.

    Cosa e` per te una lista? Per me e` una serie di oggetti tutti racchiusi dentro un tag <ul> (o [list=1]) e delimitati da[*]....

    Se posti sul forum scripting, implicitamente (ma e` meglio se sei esplicito su questo punto) dici che lavori in locale (sul client), mentre poi parli di database (che in linea di massima sta sul server).

    Nel textfield (che immagino sia un tag <input type="text">) parli di parola e poi di lettera. Cerca di essere piu` preciso.

    Cosa intendi per "evitare il submit del form"?
    Un form puo` non essere inviato: per essere sicuro puoi mettere: <form ... onsubmit="return false;">
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Hai ragione, nella terminlogia strettamente htmlistica una lista è quella individuata dai tag ul e li, cmq non è questo il punto...

    Per quanto riguarda il problema remoto/locale pensavo che avendo postato la richiesta di aiuto per javascript, la risposta fosse contenuta già in questo, giusto ?

    Parlavo di parola e poi di lettera perchè vorrei che funzionasse il tutto lettera per lettera, cioè inserisco la prima lettera, scompaiono tutti i nomi che non hanno ad iniziale quella lettera... quando aggiungo la seconda lettera allora diventa una parola perchè se si tratta di + di una lettera allora è una parola per usare un'adatta terminologia grammaticale.

    In teoria vorrei affibiare al client un lavoro che invece potrebbe essere svolto dal server... se effettuo il submit del form, infatti, il lavoro di selezione degli oggetti sarà affidato al server (cosa che come dicevo nel precedente post vorrei evitare) e quindi vorrei lasciar fare tutto al client, senza dover effettuare quindi il submit di un form.

    Dal punto di vista pratico mi servirebbe solo sapere come individuare un getelementbyid unicamente dall'iniziale del nome dell'id stesso...

    ad esempio valore = "ga" identificazione di tutti gli id con iniziale diversa da "ga" per poter applicare il display: none

    Grazie 1000
    SGr33n

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Scusa per le precisazioni chieste, ma vedendo il rate di errori nella terminologia in questo forum (che poi si ripercuotono in script o addirittura strumenti errati) ho preferito chiarire.


    Ok, qualcosa hai chiarito, e sotto ti posto un abbozzo di script.
    Mi pare di vedere una cosa non ancora chiara.

    Prendendo il tuo esempio:
    nella textarea scrivi "g"
    ==> vengono eliminati tutti gli oggetti di un certo tipo il cui contenuto inizia per g.
    nella textarea scrivi ancora a, per cui si vede "ga"
    ==> vengono ulteriormente eliminati tutti gli oggetti che iniziano per a OPPURE vengono eliminati solo gli oggetti che iniziano per "ga" (e vengono ripristinati gli altri) ??

    Supponendo di avere
    <ul id="elenco">[*]alfa[*]beta[*]gamma
    ...[/list]

    lo script per il caso primo potrebbe essere:
    codice:
    function elimina(parola) {
      var lett = parola.substr(parola.length-1);
      var oggetti = document.getElementById('elenco').getElementsByTagName('li');
      for(var i=0; i<oggetti.length; i++) {
        if(oggetti[i].innerHTML.substr(0,1) == lett) {
          oggetti[i].style.display = 'none';
        }
      }
      alert("eliminato oggetti che iniziano con "+lett);
    }
    Nota che questo script e` case-sensitive (ma se va bene si puo` rendere case-insensitive).

    Naturalmente va chiamato con:
    <input type="text" ... onkeyup="elimina(this.value);">

    Nota che la lista fatta con[*] e` la maniera piu` corretta semanticamente. Se ti serve togliere i punti, lo si fa con i CSS.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Wow ti ringrazio tantissimo provo subito il tutto

    Per la lista alla fine non penso utilizzerò i tag appositi, in ogni caso se dovessi farlo eliminerei i punti con list-style: none;

    Grazie 1000 ancora
    SGr33n

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Un paio di considerazioni (che mi ero dimenticato).

    Se la lista e` l'unica nella pagina, ti basta usare:
    var oggetti = document.getElementsByTagName('li');

    Nota che getElementsByTagName() ritorna un vettore se il numero di elmenti e` almeno due, altrimenti potrebbe ritornare uan variabile semplice (almeno in alcuni browser), per cui la quadra poi non ci puo` stare.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Mi servirebbe la maggiore compatibilità tra browser possibile, ovviamente senza tornare troppo indietro con gli anni :P magari farò qualche prova in entrambi i modi... cmq la lista è unica.
    SGr33n

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da SGr33n
    Per la lista alla fine non penso utilizzerò i tag appositi, in ogni caso se dovessi farlo eliminerei i punti con list-style: none;
    Ma qualcosa devi usare: devi poterci applicare uno .style.display='none' (o equivlente).
    Intendo: non ti basta un testo con degli spazi o
    .

    Tanto vale usare i tag corretti.
    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
    Sep 2001
    Messaggi
    21,188
    getElementsByTagName non e` standard, ma e` supportato da tutti i browser (escludendo NN4 e IE5.0).
    invece getElementById e` standard.

    Puoi vedere http://www.w3schools.com/xhtml/xhtml_reference.asp
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    hai ragione... la soluzione migliore, anche semanticamente, è utilizzare i tag <ul> e[*]... ho analizzato un po la situazioen ed userò sicuramente questi
    SGr33n

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.