Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Campo di un form che cambia in base alla SELECT

    ciao a tutti,

    ho un problema che non riesco a risolvere:

    ho un campo in una form e voglio che il contenuto cambi in base alla scelta fatta nella SELECT, che è nello stesso form, all' evento OnChange().

    il fatto è che non so come fare, il codice semplificato è questo:



    <script language="javascript">

    function prezzo()
    {

    //ci dovrebbero essere degli if che controllano la select, e in base al contenuto, cambiano il contenuto di "prezzo", senza ricaricare la pagina(ma credo sia sottointeso)
    }
    </script>

    <form name="ThisForm">
    <select name="scegli" onchange="prezzo()"> //la select
    <option name="provincia">A
    <option name="provincia">B
    <option name="provincia">C
    </option>

    <input type="text" name="prezzo" /> //il campo che deve cambiare

    </form>

    Grazie 10000000000000 in anticipo a tutti quelli che mi risponderanno

  2. #2
    A parte che non ho mai visto il tag option con l'attributo name al posto di value.

    Dovresti sostituire quell'attributo, ma non con stesso valore, altrimenti quale valore prende se tutti hanno lo stesso valore.

    Guarda, fai bene a fare una funzione con tutte le if, ma se metti ad ogni attributo value il valore che dovrebbe assumere il campo di testo, se selezionato, ti basta mettere, all'interno dell'evento onChange() del select, una semplice operazione.

    Prova questo esempio ( senza usare la funzione prezzo ):

    codice:
    <form name="form1">
     <select name="select" onChange="document.form1.prezzo.value = document.form1.select.value">
       <option value="10€">10€</option>
       <option value="15€">15€</option>
     </select>
     
     <input type="text" name="prezzo" />
    </form>
    O di serve obbligatoriamente, anche per altro, la funzione prezzo?

  3. #3
    nel select io ho dei nomi, e in base al nome che si sceglie cambia il prezzo

    esempio:

    Select Prezzo

    A 10€

    B 50€

    C 20€


    if(Select==A)
    {
    al campo prezzo si mostra 10€
    }

    if(Select==B)
    {
    al campo prezzo si mostra 50€
    }

    if(Select==B)
    {
    al campo prezzo si mostra 20€
    }


    spero tu abbia capito

    grazie

  4. #4
    Avevo capito bene, infatti il codice che ti ho fatto io, oltre a risparmiare righe, fa proprio quello che vuoi te, provalo e vedi, funziona, lo provato personalmente.

    ma io di dicevo che: non ha senso mettere il nome al select e agli option, a più senso mettere value agli option.

    Infatti le condizione delle if, da te inserite, controllano il valore dell'option, si aspettano una sintassi di questo genere dalla select:

    http://www.liceofoscarini.it/didatti...ml/select.html

    Io ti ho scritto quel codice per evitare righe di codici, o le if ti servono anche per altro?

  5. #5

    RE: doppio select

    La cosa è più complicata, cercherò di essere il più chiaro possibile

    ho due Select, nel primo si sceglie un elemento e in base all'elemento scelto, si modifica automaticamente il secondo Select.
    Il secondo Select ha un "name" che è uguale per tutti gli options, Questo:

    <select name="List2" id='modello'
    OnChange="this.form.ValueIn2.value=this.options[this.selectedIndex].value">
    <option name="List2">
    <option name="List2">
    <option name="List2">
    <option name="List2">
    <option name="List2">
    </select>

    quando si è scelto un campo del 2^Select, si deve modificare il campo prezzo:

    <input type="text" name="prezzo" id="prezzo"/>

    Io avevo intenzione di farlo chiamando una onChange in modulo(anche se sembra non andare qualsiasi cosa voglia fare) e chiamare una funzione che prendeva il campo selezionato nel 2^SELECT e con degli If mettere determinare il prezzo e inserirlo nell' apposito campo.

    spero tu abbia capito, grazie per quello che stai facendo..

  6. #6
    Ah.. ora ho capito.

    In pratica te vuoi creare il secondo select in base all'option selezionato nel primo select?

    Se si, allora credo che puoi precedere in questo modo:

    nell'evento onChange() del primo select invece di eseguire la funzione prezzo() esegue un'altra funzione, che tramite delle if, come già hai detto te, controlla il valore del form, ma questo mettendo l'attributo value al posto di name all'option:

    codice:
    if (document.form1.select.value = "1") {
      // Crea select
    }
    
    if (document.form1.select.value = "2") {
     // Crea select
    }
    Potresti provare a l'asciare l'attributo name all'option, in questo caso al posto di value, nel codice qui sopra, metti name, ma come già detto prima, non avendo mai visto un'option senza attributo name, credo che non vadi.

    A questo punto, dentro ogni if dovresti far creare, al javascript il secondo select, credo che vada bene quello da me postato, e dovresti aver risolto il tuo problema

    Per creare il secondo select, tramite javascript, puoi utilizzare la funzione createElement(), che ti permette di creare un'elemento nella pagina, che potresti appendere ad un'elemento vuoto presente tra la casella di testo dove deve apparire il testo e il primo select.

    Purtroppo non so farti un'esempio, ma se tutto questo non dovrebbe funzionare, mi dispiace ma non saprei in che altro modo aiutarti.

  7. #7
    ho risolto, ho solo un ultimo problema:

    devo fare il doppio onChange su una select, ecco il codice:

    <select name="select"
    OnChange="this.form.ValueIn2.value=this.options[this.selectedIndex].value; costo()" >
    <option name="select">
    <option name="select">
    <option name="select">
    <option name="select">
    </select>

    in questo codice non mi funziona costo(), se invece tolgo la prima parte costo(), funziona.

    non riesco a far funzionare contemporaneamente le 2 cose

    ciao

  8. #8
    Te con questa istruzione:

    codice:
    this.options[this.selectedIndex].value
    Prende il contenuto dell'attributo value del tag, cosa che te non hai, e cosa che ti sconsiglio vivamente di usare al posto dell'attributo name, magari con valori diversi, almeno che, per un ovvio motivo te non puoi.

  9. #9
    ho capito, ma io ho molte opzioni e mi serve una funzione...

    costo()

    che devo mettere nello stesso onChange del Select dipendente dall' 1^Select.

    tipo questa:

    onChange="this.form.ValueIn2.value=this.options[this.selectedIndex].value; costo()"

    ma non funziona..

  10. #10
    Ho risolto, GRAZIE di tutto !!!!!!!!!!!!!!!!!!!!!!!!

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.