ho il seguente codice HTML contenente un elenco a discesa (selezione singola)HTML selezionare elemento onChange innescare per l'opzione già selezionata
<script type="text/javascript">
$(document).ready(function() {
$("#garden").bind('change', function() {
alert("Changed");
});
});
</script>
<body>
<div id="content">
<select id="garden">
<option value="flowers">Flowers</option>
<option value="shrubs">Shrubs</option>
<option value="trees">Trees</option>
<option value="bushes">Bushes</option>
</select>
</div>
</body>
</html>
Quando la pagina HTML è reso, Flowers
è l'elemento già selezionato nella casella di riepilogo giù di default (essendo il primo). Se seleziono qualsiasi altro valore (diverso da "Fiori"), la funzione javascript viene attivata e viene visualizzata una casella di avviso contenente "Modificato".
Q1: Tuttavia, nel caso in cui venga nuovamente selezionato Flowers
, l'evento onchange
non viene attivato. Capisco che è perché nulla è stato 'cambiato' nell'elenco a discesa. C'è un modo in cui una funzione viene attivata anche quando non viene apportata alcuna modifica al valore già selezionato nel menu a discesa?
Q2: Come estrarre il valore dell'elemento che è stato appena selezionato (anche se non è stato selezionato nulla di nuovo, ovvero, l'utente ha fatto clic sul menu a discesa e ha fatto semplicemente clic da qualche altra parte).
Ho già provato il "onblur" ma ciò richiede che l'utente faccia clic in qualche altro punto del documento in modo che l'elenco a discesa perda lo stato attivo. Qualsiasi aiuto sarebbe molto apprezzato.
Grazie mille. [Ho modificato le intestazioni HTML e altri inclusioni di script nel frammento di codice fornito per brevità.]
Wow, grazie. Funziona quasi perfettamente per me: D – Shrey