Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    487

    problema con onchange e select

    ho una select di questo tipo:
    <select name='pippo'>
    <option value='5||8'>ciao</option>
    </select>
    la domanda è:come posso fare in modo che quando clicco su ciao mi scriva la prima parte del value(5) in un input text e la seconda(8)in un altro input text?si puo?
    Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    a partire da questa: http://forum.html.it/forum/showthrea...hreadid=813895

    e con queste info: http://www.devguru.com/Technologies/...ing_split.html

    puoi arrivare alla soluzione.

    ps: per precisazioni sul medesimo problema (vedi discussione precedente) non e' necessario affaticare i criceti con nuovi thread...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Si puo`. Non capisco il doppio separatore || : crea dei valori inutili nel codice.

    <select name='pippo' onchange="copia(this);">
    <option value='5||8'>ciao</option>
    </select>

    In uno script della head della pagina ci dovrai mettere:
    codice:
    funcion copia(ss) {
      var valu = ss.options[ss.selectedIndex].value;
      var vett = valu.split(/\|/); // separa nei singoli pezzi separati da |
      ss.form.NOMETEXT1.value = vett[0]; // prima parte dello split
      ss.form.NOMETEXT2.value = vett[2]; // terza parte dello split
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    487

    non mi funziona..

    sul primo input text non appare nulla,sul secondo appare undefined
    Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Anzitutto prova ad inserire degli alert, per verificare cosa contengono le variabili:
    codice:
    funcion copia(ss) {
      var valu = ss.options[ss.selectedIndex].value;
      var vett = valu.split(/\|/); // separa nei singoli pezzi separati da |
      alert("vett = "+vett[0]+"  "+vett[1]+"  "+vett[2]);
      ss.form.NOMETEXT1.value = vett[0]; // prima parte dello split
      ss.form.NOMETEXT2.value = vett[2]; // terza parte dello split
    }
    Poi se puoi lascia il link alla pagina, in modo che possiamo verificare come hai implementato la funzione.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    487

    piu o meno ci sono..

    ultima domandina:
    se questa è la funzione:
    function copia(ss) {
    var valu = ss.options[ss.selectedIndex].value;
    var vett = valu.split(/\|/); // separa nei singoli pezzi separati da |
    alert("vett = "+vett[0]+" "+vett[1]+" "+vett[2]);
    ss.form.NOMETEXT1.value = vett[0]; // prima parte dello split
    ss.form.NOMETEXT2.value = vett[2]; // terza parte dello split
    }

    se al posto di:ss.form.NOMETEXT1.value = vett[0]; volessi far caricare tutto in uno span del tipo:<span id='pippo'></span> come cambia la sintassi?
    Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non hai detto come hai risolto il problema di prima ... (sai il forum serve per tutti, compreso per chi da` soluzioni).

    Al posto di:
    ss.form.NOMETEXT1.value = vett[0];

    devi scrivere:
    document.getElementById('pippo').innerHTML = vett[0];

    .innerHTML non e` standard, ma e` supportato da quasi tutti i browser moderni.

    In alternativa usa un campo, in cui formatti la visualizzazione in modo che non si veda (devi usare i CSS).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    487

    ciao..

    non l'ho scritto perche il problema era che non usavo campi numerici nel value ma delle variabili..
    del tipo value='$variabile||$variabile2' ma $variabile era del tipo:
    ciao a tutti
    e i tag html mi davano problemi inserendoli in un input text. mettendoli invece nello span funziona alla grande,tranne per un caso:se il valore di $variabile2 è zero mi stampa "undifined".cè un modo per dire:se il valore è zero non stampare nulla,se invece ha un valore,stampa quel valore?
    Grzie mille comunque Mich_
    Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non capisco se sono stringhe o numeri.

    Lo split lavora sulle stringhe.

    Ma forse non ci sono neanche i separatori (il | ): allora e` un problema che puoi risolvere a livello di dati, oppure devi inserire degli if:
    codice:
    funcion copia(ss) {
      var valu = ss.options[ss.selectedIndex].value;
      var vett = valu.split(/\|/); // separa nei singoli pezzi separati da |
      alert("vett = "+vett[0]+"  "+vett[1]+"  "+vett[2]);
      if(vett[0]) ss.form.NOMETEXT1.value = vett[0]; // prima parte split
      if(vett[2]) ss.form.NOMETEXT2.value = vett[2]; // terza parte split
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    487

    infatti ora funziona ma..

    il problema è questo:
    la select e':
    <select name='ciao'>
    <option value='5||8'>pippo</option>
    </select>
    ho messo nella select un evento di questo genere:
    onchange="(this.form.via.value = this.options[this.selectedIndex].text)&&copia(this);"

    la prima parte dell'onchange fa si che in un input text di nome via mi salvi pippo
    il problema è che adesso che ho inserito la seconda parte dell'onchange non mi funziona piu'.mi da il campo vuoto.perche?
    Vivi intensamente, muori giovane e sarai un cadavere di bell' aspetto.

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.