Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478

    [javascript] Passare valori da un campo all'altro stesso form

    Avrei bidogno di recuperare i valori di alcuni campi di testo e visualizzarli insieme ad un testo predefinito in un campo textarea.

    uhm... non è chiaro, eh? Provo con un esempio (grafico )

    Questo è il form, inizialmente è "vuoto" in tutti suoi campi. Se aggiungo del testo nel campo "tipo" e poi nel campo "marca", avrei bisogno di recuperare quello che ho scritto nei due campi precedenti (ma potrebbero essere anche più di due) nella textarea, che sarebbe il campo "desc."

    La textarea, dovrebbe contenere un testo predefinito, non visualizzabile direttamente ma "solo" se alcuni campi contengono del testo. Nel mio caso si tratterebbe dei campi "tipo" e "marca".
    codice:
           +---------+
    tipo:  | EBSv32  |           (input type="text")
           +---------+
    
           +---------+
    marca: | KHORi   |           (input type="text")
           +---------+
    
           +------------------+
    desc.: |                  |  (textarea)
           |                  |
           |                  |
           +------------------+
    Quindi, a questo punto, dopo aver riempito i due campi che precedono la textarea, vorrei che al focus sulla textarea stessa venisse mostrato il testo predefinito con l'aggiunta del testo inserito nei due campi precedenti. Così:
    codice:
           +------------------+
    desc.: | Silo tipo EBSv32 |  (textarea)
           | marca KHORi anno |
           | 2004, fornito... |
           |                  |
           +------------------+
    Mi date una mano a realizzare 'sta cosa? Grazie

  2. #2
    Credo si debba usare un gestore di eventi onchange su ognuna delle due caselle di testo che fanno variare il valore della textarea.

  3. #3
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    ...e come si fa?

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    ...che faticata, ragazzi!

    Ho cercato in tanti di quei siti su javascript che ho ancora mal di testa...

    Ala fine però sono riuscito a trovare quello mi serviva! Posto qui il codice, magari potrà servire anche a qualche altro disperato, non is sa mai...
    codice:
    function checkWrite()
    {
      textstring = 'Silo ';
      for (i=0; i<5; i++)	{
       box = document.forms[0].elements[i];
        if (!box.value) {
         alert('Compilare il campo ' + box.name + '!');
         box.focus()
         return;
        }
      textstring += box.name + ' ' + box.value + ', ';
      }
    
      select_box1 = document.modulo.anno.options[document.modulo.anno.selectedIndex].value
      select_box2 = document.modulo.fornito.options[document.modulo.fornito.selectedIndex].value
        textstring += 'completo di:\n';
          document.forms[0].output.value = textstring;
    }
    Questo codcie ha "esattamente" quello di cui avevo bisogno: trasferire valori da un campo all'altro accodandoli in un'unica stringa per poi mostrare il tutto nella textarea (name=output).

    Provo a chiedere, anche se ho dei dubbi su eventuali risposte, un'ultima cosa: è possibile ottimizzare questo codcie dal punto di vista logico-strutturale, o semplicemente migliorando la scrittura dal punto di vista della sintassi? (magari qualcuno che mangia js e pane tutti i giorni ) Purtroppo non conosco assolutamente javascript e non saprei nemmeno dove metter mano...

    Ringrazio anticipatamente chiunque voglia darmi dei consigli...

  5. #5
    Mi sembra ottimizzato quanto basta: ma a cosa serve

    textstring = 'Silo ';

    ?Ciao

  6. #6
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Trovi che lo sia abbastanza?

    Comunque, con textstring = 'Silo '; la parola "Silo " mi occorre per introdurre la descrizione guidata che verrà mostrata nella textarea. Allo stesso modo, textstring += 'completo di:\n'; che contiene le parole "completo di: ", verrà usato per chiudere la stringa mostrata sempre nella textarea...

    In pratica, dopo aver fatto tutti i controlli sui campi, con quel codice, riesco a recuperare sia il nome che il valore di ogni singolo campo interessato.

    Quindi, se ho dei campi con gli attributi name uguali a "marca", "tipo", "anno" etc., digitando le caratteristiche nel campo value di ogni campo, otterrò nella variabile "textstring", il testo completo:

    "Silo marca KHORi, tipo EBSv32, anno 2004, completo di: "

    che verrà mostrato nella textarea premendo un pulsante che richiama la funzione all'evento onClick. Questo è esattamente quello di cui avevo bisogno.

    Grazie abmcr per il tuo parere, se ci fosse ancora qualcuno disponibile a darmi ulteriori consigli, gliene sarei molto grato...

  7. #7
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Con il codice della funzione del mio post precedente se un campo è vuoto si attiva l'alert con un messaggio appropriato, indicando il nome del campo stesso che dev'essere compilato. Però, anche se digito solo uno spazio il campo viene considerato pieno e questo è male...

    Se volessi controllare che il campo, oltre ad essere compilato, fosse privo di spazi all'inizio o alla fine? Esiste un modo per farlo?

    Dovrebbe essere una funzione tipo trim() di php, che elimina gli spazi all'inizio ed alla fine della stringa a cui è applicata...

  8. #8

  9. #9
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Si, è perfetta com soluzione! ...ma non riesco ad integrarla nella funzione che sto usando. Non capisco come usarla, saresti così gentile da indicarmi il punto dove inserirla. Grazie

  10. #10
    function checkWrite()
    {
    var a='';
    textstring = 'Silo ';
    for (i=0; i<5; i++) {
    box = document.forms[0].elements[i];
    a=trim(box.value);
    if (!a='') {
    alert('Compilare il campo ' + box.name + '!');
    box.focus()
    return;
    }
    textstring += box.name + ' ' + box.value + ', ';
    }

    select_box1 = document.modulo.anno.options[document.modulo.anno.selectedIndex].value
    select_box2 = document.modulo.fornito.options[document.modulo.fornito.selectedIndex].value
    textstring += 'completo di:\n';
    document.forms[0].output.value = textstring;
    }

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.