Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585

    Ciclo if: problema con onchange su select option

    Ciao a Tutti,

    ho definito una form che contiene una select, in questo modo:

    <head>
    <script type="text/javascript">
    function changeBox(box) {
    if (!(document.form1.ris_db.value='01') && (document.form1.ris_i.value='02')) {
    if (!confirm("would you choose this value ??")) { box.value = '01'; }
    }
    }
    </script>
    </head>

    <form method="POST" name="form1">
    <input type="hidden" name="ris_db" id="ris_db" value="<%=objRS("Ris")%>">
    <select name="ris_i" id="ris_i" onchange="changeBox(this);">
    <option value="<%=objRS("Ris")%>" selected><%=objRS("Ris")%></option>
    <option value="02">02</option>
    </select>

    Nel database il campo Ris contiene, x tutti i records, il valore predefinito 01.
    Nella select voglio far apparire il messaggio: "Vuoi davvero cambiare il valore in 02 ?"

    - vorrei che questa domanda appaia quando uno seleziona dal menu' select SOLO l' opzione 02.

    - Se uno clicca su 01 non deve succedere niente.

    - se poi si richiama dal database una pagina web in cui tra i campi del record c' e' l' opzione Ris in 02,
    nel menu' select, costituito in questo caso dal solo valore 02, non deve piu' apparire la domanda.


    Come fare ??

    Grazie mille in anticipo !!!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    <select name="ris_i" id="ris_i" onchange="if(this.option.selectedIndex==2){if(conf irm('Vuoi davvero cambiare il valore in 02?')){changeBox(this);}else{return false;}else{changeBox(this);}">
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Andrea, Grazie mille, davvero una riga bella che mi piace ...
    purtroppo pero' ancora non mi funziona...

    Nella select ho aggiunto una graffa altrimenti mi dava errore,
    poi ho provato a cambiare cosi' il selectedIndex ...
    poi c' e' una cosa che non ho capito... nella funzione changeBox devo allora togliere la domanda ?? Xche' se no ne ho 2 !!

    alla fine quello che cosi' ottengo e' che non mi appare piu' nessuna domanda ...

    <select name="ris_i" id="ris_i" onchange="if(this.option.selectedIndex=='02' ){if(confirm('Vuoi davvero cambiare il valore in 02?')){changeBox(this);}else{return false;}else{changeBox(this);}} ">
    <option value="<%=objRS("Ris")%>" selected><%=objRS("Ris")%></option>
    <option value="02">02</option>
    </select>

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non avevo capito che la funzione era il controllo stesso della option, se vuoi farlo in linea sulla select:
    codice:
    <select name="ris_i" id="ris_i" onchange="if(this.option[this.selectedIndex].value=='02' && confirm('Vuoi davvero cambiare il valore in 02?')){a premuto ok fai quello che vuoi;}else{this.option.selectedIndex=0; return false;//reimposto la select a 0 e fermo l'evento} ">
    <option value="<%=objRS("Ris")%>" selected><%=objRS("Ris")%></option>
    <option value="02">02</option>
    </select>
    funzione separata:
    codice:
    function VerificaOption(opt){
    //verifico la option sia 02 e lancio il confirm
    if(opt.option[opt.selectedIndex].value=='02' && confirm('Vuoi davvero cambiare il valore in 02?')){
    a premuto ok fai quello che vuoi;
    }
    else{
    //reimposto la select a 0
    opt.option.selectedIndex=0; 
    return false;//fermo l'evento
    } 
    }
    <select name="ris_i" id="ris_i" onchange="VerificaOption(this)">
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Andrea, ti ringrazio davvero tanto, il tuo codice mi piace molto...
    Ho scelto di fare tutto in una singola riga, senza creare la funzione ...

    Ancora mi da' errore: cioe' non mi appare nessuna domanda, cioe' non mi fa niente ...

    select size="1" name="ris_i" id="ris_i" onchange="if(this.option[this.selectedIndex].value=='02' && confirm('Vuoi davvero cambiare il valore in 02?')){this.option.selectedIndex=2;} else{this.option.selectedIndex=0;return false;}">
    <option value="<%=objRS("Ris")%>" selected><%=objRS("Ris")%></option>
    <option value="02">02</option>

    Gli ho aggiunto che se uno vuole cambiare il valore default 01 in 02, allora nel menu' deve comparire 02 scelta tramite decisione, altrimenti se rinuncia deve rimanere il valore 01.

    Se invece in db c' e' gia' 02 allora non deve succedere niente

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Cambia questa riga cosi this.option.selectedIndex=1, la strada e quella vedi tu come adattare la cosa secondo le tue esigenze
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Problema risolto:

    <head>
    <script type="text/javascript">
    function checkBox(box) {
    if (document.getElementById("ris_db").value=='01') {
    if ((box.options [box.selectedIndex].value=='02') && !(confirm('Cambi il val in 02?'))) {
    box.options .selectedIndex=0; }
    }
    }
    </script>
    </head>


    <form method="POST" name="form1">
    <input type="hidden" name="ris_db" id="ris_db" value="<%=objRS("Ris")%>">
    ...
    <select name="ris_i" id="ris_i" onchange="checkBox(this)">
    <option value="<%=objRS("Ris")%>" selected><%=objRS("Ris")%></option>
    <option value="02">02</option>
    </select>


    P.S. Andrea, tutto il codice che mi avevi postato andava bene, mancava solo la "s " nelle varie parole option .


    Grazie ancora !!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Per finire il discorso,

    ecco il codice analogo, se uno vuole eseguire l' onchange direttamente dalla select, senza dover ricorrere necessariamente ad una funzione:

    <form method="POST" name="form1">
    <input type="hidden" name="ris_db" id="ris_db" value="<%=objRS("Ris")%>">
    ...
    <select name="ris_e" id="ris_e" onchange="if (document.form1.ris_db.value=='01'){ if ((this.options[this.selectedIndex].value='02') && (!confirm('would you choose it ??'))){ this.options.selectedIndex=0; } }">
    <option value="<%=objRS("Ris")%>" selected><%=objRS("Ris")%></option>
    <option>02</option>


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.