Diese Frage wird mir zur Kenntnis gebracht, da es sich hier um ziemlich einfache Dinge handelt, aber niemand dringt weiter darüber nach. OP hat change()
verwendet, aber wenn Sie die aktuell ausgewählte Option erneut auswählen, wird nichts ausgelöst!
Ich versuchte click()
, aber es feuert, bevor Sie sogar eine Option wählen können.
Mit blur()
, nachdem Sie die Auswahl getroffen haben, wird nichts ausgelöst, da das select-Element immer noch fokussiert ist. Sie müssen also wie bei einem Klick nach außen fokussieren, damit es ausgeführt wird.
Also schlug ich OP nur vor, um zu einer radio
Eingabe zu wechseln, dann handle Ausführung mit click()
Ereignis. Auf diese Weise können Sie das bereits markierte Optionsfeld erneut auswählen.
Aber dann bemerkte ich, dass Sie nur den zweiten Klick auf <select>
Element erhalten müssen, weil der erste Klick öffnet die Dropdown-Liste der Optionen der zweite Klick gibt den Wert der ausgewählten Option zurück. So kam ich mit auf den Punkt:
$('select').click(function(){
var $this = $(this);
if ($this.hasClass('open')) {
alert($this.val());
$this.removeClass('open');
}else {
$this.addClass('open');
}
});
Aber jetzt ist das Problem, wenn Sie zuerst auf <select>
klicken Sie auf den Dropdown-showned wird, und haben wir auch die Klasse 'open'
. Wenn Sie dann auf eine andere Stelle klicken (ohne eine Option auszuwählen), wird das Dropdown-Menü ausgeblendet. Wenn Sie also auf <select>
klicken, wird das Ereignis ausgelöst, bevor Sie eine Option auswählen können.
So habe ich diesen Code zu beheben, dass:
$(document).click(function(e){
var $select = $('select');
if (!$select.is(e.target)){
$select.removeClass('open'); //reset the steps by removing open
}
});
Sie es in diesem jsfiddle heraus testen. Prost!
Ich denke, wenn <select>
verliert seinen Fokus ist auch ein Anliegen. Also fügte ich blur()
Ereignis hinzu. Sehen Sie dieses Update jsfiddle
nicht bekommen, was Sie versuchen zu erklären .... bitte genauer –
Haben Sie versucht mit Radio 'klicken()'? –
Wenn Sie ein select-Tag verwenden, würde ich die ausgewählte Option wie "Bitte wählen Sie einen Wert" auswählen, dann können Sie überprüfen, wenn Sie den generischen Wert eingeben, um den Benutzer darauf hinzuweisen, dass das Auswahlfeld geändert werden muss. – ddelnano