Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2000
    Messaggi
    52

    Passaggio informazioni - onchange?

    Ho un semplice form, del tipo:

    <form methode= “post” name=”form1”>

    <td><select multiple name="tipo_usc" size="1" >
    <option>Assicurazione </option>
    <option>Onorario </option>
    <option>Consulenze</option>
    <option>Enel </option>
    <option>Altro</option>
    </select>
    </td>

    <td><input type="text" name="tabella" value="" size="10"></td>
    <td><input type="submit" name="submit" value="Inserisci record"></td>
    </form>

    Vorrei che quando scelgo, ad esempio, Assicurazione nel multiselect, nell’input successivo “tabella” il value divenga “a” od altro, e venga mostrato.
    Vorrei insomma condizionare un input alla scelta fatta, pur restando la possibilità di scriverlo direttamente.
    Ho provato con onchange ma non ne sono venuto fuori.
    Sono gradite tutte le indicazioni!
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2000
    Messaggi
    52

    Re: Passaggio informazioni - onchange?

    Originariamente inviato da Lehaen
    Ho un semplice form, del tipo:

    <form methode= “post” name=”form1”>

    <td><select multiple name="tipo_usc" size="1" >
    <option>Assicurazione </option>
    <option>Onorario </option>
    <option>Consulenze</option>
    <option>Enel </option>
    <option>Altro</option>
    </select>
    </td>

    <td><input type="text" name="tabella" value="" size="10"></td>
    Dovrebbe essere + o - del tipo:
    <select name="tipo_usc"
    onchange="(this.option[this.selected.tabella + 'value'="a2"])>
    Booooooo!

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Per una select semplice, sarebbe (se ho capito giusto):
    onchange="this.form.tabella.value = this.options[this.selectedIndex].text;">

    Se vuoi aggiungere metti += al posto di =

    Nota che il .value nonha senso, dato che non ha definitoi value nelle option della select.

    MA
    la tua select e` multi, per cui selectedIndex non funziona come ti aspetti; e non c'e` soluzione semplice: occorre ricordarsi cosa c'era la volta precedente e andare a verificare cosa e` stato modificato nella select multi.
    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
    Dec 2000
    Messaggi
    52
    Originariamente inviato da Mich_
    Per una select semplice, sarebbe (se ho capito giusto):
    onchange="this.form.tabella.value = this.options[this.selectedIndex].text;">

    ...occorre ricordarsi cosa c'era la volta precedente e andare a verificare cosa e` stato modificato nella select multi.
    Questo è un altro problema che dovrò risolvere in futuro, ma al momento io faccio una scelta nella multiselect (ma potrebbe essere benissimo solo select) ed in base alla scelta fatta vorrei inserire automaticamente in name(tabella) il valore(value) = "a" oppure "b" oppure altro, che sarà un codice che mi servirà in seguito.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Allora usa una select semplice, con quel codice.
    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
    Dec 2000
    Messaggi
    52
    Originariamente inviato da Mich_
    Allora usa una select semplice, con quel codice.
    Chiedo ancora un po' del tuo tempo e ti scrivo, con sintassi sicuramente sbagliata, di nuovo, il problema.

    onchange="if this.options[this.selectedIndex].text="assicurazione"
    then this.form.tabella.value="a"
    elseif
    ....
    (scelgo un'altra option e quindi il value sarà="b"(ad es.).
    elseif
    .....
    ecc.
    qual è la sintassi giusta per esprimere tutto questo?
    Ancora grazie per la pazienza che dimostri di avere!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Be` e` un po' troppo complesso per fare quello che chiedi: ti basta usare il campo value delle option:

    <select .... onchange="this.form.tabella.value = this.options[this.selectedIndex].value;">
    <option value="a">assicurazione</option>
    <option value="b">onorario</option>
    ...
    </select>

    Altrimenti per usare gli if, devi fare una funzione esterna.

    Comunque la sintassi in JS sarebbe:

    if (ss.options[ss.selectedIndex].text=="assicurazione") {
    ss.form.tabella.value="a";
    } else if (ss.options[ss.selectedIndex].text=="onorario") {
    ss.form.tabella.value="b";
    } ... {
    }else {
    ss.form.tabella.value="none";
    }
    Nota che in una funzine esterna non si puo` usare this, ma occorre passare l'oggetto ed attribuirlo ad un parametro (che ho chiamato ss).
    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
    Dec 2000
    Messaggi
    52
    Originariamente inviato da Mich_
    Be` e` un po' troppo complesso per fare quello che chiedi: ti basta usare il campo value delle option:
    Ti ringrazio, adesso ho le idee più chiare.
    un ciao

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.