Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [JS]Sostituire select con input

    Ciao a tutti , c'e' un modo per avere la stessa funzione di una select pero' con un campo input? .
    Faccio un esempio, utilizzo il seguente script :

    Codice PHP:
        <script language="javascript" type="text/javascript">
    function 
    prova(value
    {
        var 
    A1 document.getElementById("text1");
        var 
    A2 document.getElementById("text2");
        
        if (
    value == '0'
        {
              
    A1.disabled true;
              
    A2.disabled true;
        }
        else if (
    value == '1'
        {
              
    A1.disabled false;
              
    A2.disabled true;
        }
        else if (
    value == '2'
        {
              
    A1.disabled true;
              
    A2.disabled false;
        }
    }

    </script>

    </head>
    <body >
        <form>
            <select id="select1" onchange="prova(this.value)">
                <option value="0"></option>
                <option value="1">prova1</option>
                <option value="2">prova2</option>
            </select>
            <input type="text" id="text1" size="8" >
            <input type="text" id="text2" size="8" >
            </form> 
    se invece della select metto un campo text :

    Codice PHP:
        <script language="javascript" type="text/javascript">
    function 
    prova(value
    {
        var 
    A1 document.getElementById("text1");
        var 
    A2 document.getElementById("text2");
        
        if (
    value == '0'
        {
              
    A1.disabled true;
              
    A2.disabled true;
        }
        else if (
    value == '1'
        {
              
    A1.disabled false;
              
    A2.disabled true;
        }
        else if (
    value == '2'
        {
              
    A1.disabled true;
              
    A2.disabled false;
        }
    }

    </script>

    </head>
    <body >
        <form>
            <input size="8" id="select1" onchange="prova(this.value)">
            <input type="text" id="text1" size="8" >
            <input type="text" id="text2" size="8" >
            </form> 
    digitando 0 oppure 1 oppure 2 dovrebbero modificarsi in tempo reale i campi associati al value , invece non accade perche'?

    Grazie in anticipo per le risposte
    Saluti
    Milena

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    A me pare che funzioni correttamente... tenendo prsente che l'evento onchange scatta per un campo text solo quando perde il focus... ovvero quando la digitazione e' sicuramente finita.

    Magari vuoi un funzionamento diverso... prova ad usare l'evento onkeyup

    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
    Grazie mille br1 per la risposta e per la soluzione , l'evento onchange mi dava il problema che ero costretta a cliccare in un altro campo prima che si eseguisse, invece onkeyup fa in modo che l'azione avvenga istantaneamente come volevo .
    Ti ringrazio
    Saluti
    Milena

  4. #4
    Ciao a tutti,
    riesumo il post perche mi sono trovata in difficolta' modificando il codice in questo modo :

    Codice PHP:
    <script language="javascript" type="text/javascript"
    function 
    prova(value

        var 
    A1 document.getElementById("text1"); 
        var 
    A2 document.getElementById("text2"); 
         
        if (
    value == '0'
        { 
              
    A1.disabled true
              
    A2.disabled true
        } 
        else if (
    value == '1'
        { 
              
    A1.disabled false
              
    A2.disabled true
        } 
        else if (
    value == '2'
        { 
              
    A1.disabled true
              
    A2.disabled false
        } 


    </script> 

    </head> 
    <body > 
        <form> 
            <input value="1" size="8" id="select1" onkeyup="prova(this.value)"> 
            <input type="text" id="text1" size="8" > 
            <input type="text" id="text2" size="8" > 
            </form> 
    Come si nota ho messo il value a 1 e dovrebbe azionare lo script come se scrivessi nell'input text, invece non lo fa' come mai ?

    Grazie a chi mi rispondera'
    Saluti
    Milena

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    <input type="........" value="1" size="8" id="select1" onkeyup="prova(this.value)"> :master: cose?
    inoltre onkeyup si scatena solo quando si digita qualcosa nel campo non in automatico.


    Io ti consiglio di leggere le ottime guide che trovi qui su html.it.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Originariamente inviato da cavicchiandrea
    <input type="........" value="1" size="8" id="select1" onkeyup="prova(this.value)"> :master: cose?
    inoltre onkeyup si scatena solo quando si digita qualcosa nel campo non in automatico.


    Io ti consiglio di leggere le ottime guide che trovi qui su html.it.
    Ciao Andrea e grazie per la risposta .
    Il mio problema e che vorrei cercare di far funzionare il tutto specificando il value non manualmente nel input text ma tenendolo gia' impostato come nell'esempio fatto in precedenza.

    La mia e stata solo una prova sapendo gia' che onchange si attiva quando dopo digitato si cambia focus e onkeyup quando si finisce di digitare il valore.

    C'e' forse un altro evento che invece verifica che il value ha un certo valore e fa in modo da avere lo stesso effetto dei precedenti?

    Grazie in anticipo
    Saluti
    Milena

  7. #7
    Ho provato a cercare anche nel forum senza trovare nulla di analogo...
    Sperando in un aiuto cerco di tenere aperta la discussione

    Saluti
    Milena

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    prova cosi:
    codice:
    <script language="javascript" type="text/javascript">
    
    window.onload = prova(document.getElementById("select1").value)
    
    function prova(value)
    {
        var A1 = document.getElementById("text1");
        var A2 = document.getElementById("text2");
         
        if (value == '0')
        {
              A1.disabled = true;
              A2.disabled = true;
        }
        else if (value == '1')
        {
              A1.disabled = false;
              A2.disabled = true;
        }
        else if (value == '2')
        {
              A1.disabled = true;
              A2.disabled = false;
        }
    }
    </script>
    con onload leggi il valore del campo select1 al caricamento della pagina.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Ciao Andrea, grazie per la pazienza e scusa per il tempo che ti sottraggo .
    Il codice che hai postato, alla riga 3 ovvero :

    window.onload = prova(document.getElementById("select1").value)
    mi da Errore: necessario oggetto , come mai?

    Grazie in anticipo
    Saluti
    Milena

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Partendo che nel documento ci deve essere fisicamente e visibile (non nascosto) se il problema si presenta con ie devi assegnare a che il name del campo cosi:
    <input type="text" name="select1" value="1" size="8" id="select1" onkeyup="prova(this.value)">
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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 © 2026 vBulletin Solutions, Inc. All rights reserved.