View Full Version : [javascript] Controllo su select
Ho una select di questo tipo:
<select name="sesso" onblur="check_sesso()">
<option value="">---</option>
<option value="Maschio">Maschio</option>
<option value="Femmina">Femmina</option>
</select>
"onblur" richiamo la funzione che controlla se è stato selezionato il sesso o no. Il fatto è che in questo modo se un utente apre il menu a tendina e sceglie il sesso, il testo "ok" oppure "sesso non selezionato" lo visualizza quando si sposta da un altra parte nella form.
C'è un alternativa al "onblur" che mi permette di fare un controllo appena l'utente apre il menu e seleziona una delle option?
Ho una select di questo tipo:
<select name="sesso" onblur="check_sesso()">
<option value="">---</option>
<option value="Maschio">Maschio</option>
<option value="Femmina">Femmina</option>
</select>
"onblur" richiamo la funzione che controlla se è stato selezionato il sesso o no. Il fatto è che in questo modo se un utente apre il menu a tendina e sceglie il sesso, il testo "ok" oppure "sesso non selezionato" lo visualizza quando si sposta da un altra parte nella form.
C'è un alternativa al "onblur" che mi permette di fare un controllo appena l'utente apre il menu e seleziona una delle option?
onselect e onchange ?
Perfetto era onchange quella che stavo cercando...
Poi un'altra cosa, dovrei fare la stessa cosa su una data, quindi invece di esserci una select ce ne sono 3.
Richiandando la funzione con l'onchange su ogni select non mi sembra molto giusto, infatti appena uno sceglie il giorno, visualizza l'errore.
La cosa che forse più si avvicina alla perfezione che mi è venuta in mente è mettere l'onchange sulla testa select, in questo modo fai il controllo quando l'utente ha selezionato tutti e 3 i campi.
L'unica pecca di questo controllo è che se l'utente per esempio clicca subito su anno gli visualizza l'errore.
C'è modo di fare una cosa simile, però che non dipenda dal ordine con cui l'utente seleziona i campi?
Perfetto era onchange quella che stavo cercando...
Poi un'altra cosa, dovrei fare la stessa cosa su una data, quindi invece di esserci una select ce ne sono 3.
Richiandando la funzione con l'onchange su ogni select non mi sembra molto giusto, infatti appena uno sceglie il giorno, visualizza l'errore.
La cosa che forse più si avvicina alla perfezione che mi è venuta in mente è mettere l'onchange sulla testa select, in questo modo fai il controllo quando l'utente ha selezionato tutti e 3 i campi.
L'unica pecca di questo controllo è che se l'utente per esempio clicca subito su anno gli visualizza l'errore.
C'è modo di fare una cosa simile, però che non dipenda dal ordine con cui l'utente seleziona i campi?
Mumble... perdonami, non ho afferrato il problema.
Mettere un disabled sulle restanti select e attivarle SOLO dopo aver selezionato la precedente? :)
aggiungi un'opzione di selezione non valida, per così dire di "parcheggio", tipo un "Seleziona il giorno/mese o anno".
In questo modo l'errore lo dai fuori solo se la data non è corretta quando tutti e tre i valori non sono quelli di parcheggio.
Altrimenti controlli la data solo all'invio del form.
Grazie a entrambi per l'aiuto adesso provo tutte e due le soluzioni poi valuto la migliore.
Una cosa però, ho disabilitato mese e anno, per attivarli ho messo l'evento onchange in giorno, però non so cosa scriverci dentro per attivarli.
<select name="giorno" onchange="???">
<select name="mese" disabled="true" onchange="???">
<select name="anno" disabled="true">
Grazie a entrambi per l'aiuto adesso provo tutte e due le soluzioni poi valuto la migliore.
Una cosa però, ho disabilitato mese e anno, per attivarli ho messo l'evento onchange in giorno, però non so cosa scriverci dentro per attivarli.
<select name="giorno" onchange="???">
<select name="mese" disabled="true" onchange="???">
<select name="anno" disabled="true">
disabled="true" ?
o
<select name="mese" disabled="disabled" onchange="???">
oppure
<select name="mese" disabled onchange="???">
:) cosi penso sia piu corretto.
Per l'onchange dovresti scrivere una funzione JS che cancelli il disabled o lo converta in enabled :D
A ecco, infatti mi sembrava troppo semplice inserirlo direttamente li...
Provo a fare una funzione con js e ti faccio sapere come va.
Ok, risolto con una semplice funzione di questo tipo:
...
if (document.registrazione.mese.disabled == true) { document.registrazione.mese.disabled = false; }
else {
if (document.registrazione.anno.disabled == true) { document.registrazione.anno.disabled = false; }
else {
...
Ok, risolto con una semplice funzione di questo tipo:
...
if (document.registrazione.mese.disabled == true) { document.registrazione.mese.disabled = false; }
else {
if (document.registrazione.anno.disabled == true) { document.registrazione.anno.disabled = false; }
else {
...
:D bravissimo!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.