Visualizzazione dei risultati da 1 a 6 su 6

Discussione: onchange cervellotica

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    14

    onchange cervellotica

    ciao a tutti ,
    ho una situazione incasinata:
    - ho un db che contiene citta-cap

    in un form inserisco una select
    come questa:

    <select name="vcomune" >
    <select selected ></select>
    <select value="milano">milano</select>
    <select value="roma">roma</select>
    <select value="napoli">napoli</select>
    </select>

    in un textfield <input type="text" name="vcap2">
    ho il campo cap che dev'essere precompilato in funzione della città provincia selezionata in precedenza

    per cui ho fatto un'altra select NON visibile che contiene
    come value citta e come text cap

    <select name="vcap" class="select" >
    <select selected ></select>
    <select value="milano">12345</select>
    <select value="roma">67890</select>
    <select value="napoli">12354</select>
    </select>

    sulla prima select ho messo un evento onchange che esegue due funzioni

    1) value della 2 select = value della 2 select
    2) value del campo text = text della 2 select

    <select name="vcomune" OnChange="parent.form.vcap.value = parent.form.vcomune.value; parent.form.vcap2.value =parent.form.vcap.text" >


    il problema sta nel fatto che la prima istruzione viene eseguita ma la seconda no in quanto mi risulta "undefined"

    evidentemente la seconda istruzione legge il text della 2 select prima che questa venga cambiata.

    qualcuno sa darmi una mano ?
    ciao e grazie

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Mi meraviglia che qualcosa funzioni... con una simile sintassi:
    <select name="vcomune" >
    <select selected ></select>
    <select value="milano">milano</select>
    <select value="roma">roma</select>
    <select value="napoli">napoli</select>
    </select>
    VVoVe:

    Precisando che non capisco perche' tu non possa avere come value della prima (ed in questo caso unica) select direttamente il value del cap :master:

    <select name="vcomune" onchange="this.form.vcap2.value=this.options[this.selectedIndex].value">
    <option selected value=""></option>
    <option value="12345">milano</option>
    <option value="67890">roma</option>
    <option value="13579">napoli</option>
    </select>

    Se non soddisfa le tue esigenze... siamo qui

    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
    Mar 2003
    Messaggi
    14
    in realtà non so molto di java e mi arrabatto leggendo nel forum....
    cmq in realtà mi serve risolvere il problema, in quanto il tutto è ancora + incasinato ma capito questo credo di essere in grado di risolvere il resto... almeno imparo e capisco la logica.

    se mi permetti di approfittare della tua pazienza, potresti spiegarmi :
    this.form.vcap2.value=this.options[this.selectedIndex].value"> ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    14
    cmq credo di non essermi spiegato,
    posto l'esempio

    <form name="form" >
    <select name="comune" onchange="this.form.cap1.value=this.options[this.selectedIndex].value;parent.form.cap2.value =parent.form.cap1.text">
    <option selected></option>
    <option value="milano">milano</option>
    <option value="roma">roma</option>
    </select>
    <div id="divSelnascosta" style="display:none;" >
    <select name="cap1">
    <option selected></option>
    <option value="milano">33000</option>
    <option value="roma">31000</option>
    </select>
    </div>
    <input type="text" name="cap2">
    </form>

    lo scopo e' far comparire nel textfield cap2 il cap e che questo sia
    modificabile.

    necessito purtroppo di mantenere nel value di comune il nome del comune stesso.

    ciao e grazie

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Allora modifica cosi':

    <select name="vcomune" onchange="this.form.vcap2.value=this.form.vcap1.op tions[this.selectedIndex].text">
    <option selected value=""></option>
    <option value="12345">milano</option>
    <option value="67890">roma</option>
    <option value="13579">napoli</option>
    </select>

    La spiegazione (di questa soluzione):

    this.form.vcap2.value=this.form.vcap1.options[this.selectedIndex].text

    this = questo elemento (il select)
    this.selectedIndex = l'indice dell'option attualmente selezionato ...
    this.form = il form a cui appartiene questo elemento
    this.form.vcap2.value = il valore dell'elemento di nome vcap2 del form ... eccetera
    this.form.vcap1.options[this.selectedIndex].text =
    il valore testuale dell'option dell'elemento di nome vcap1 che ha l'indice pari all'indice selezionato di questo elemento (vcomune)

    Spero di non averti incasinato le idee...

    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    14
    grazie 1000
    metto subito in pratica

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.