jquery - not - preventDefault() no funciona en elementos SELECT en Firefox 9.0.1
onclick preventdefault (3)
Me doy cuenta de que hay otras preguntas sobre preventDefault () que no funcionan con Firefox, pero no me ayudaron.
Tengo tres listas SELECT, y todo lo que quiero es navegar entre ellas usando las teclas de flecha sin cambiar ningún valor . El código funciona muy bien en Chrome, pero en Firefox mueve el foco y luego cambia el valor del elemento al que se acaba de mover.
http://jsbin.com/ofitif/3/edit
JavaScript:
$(document).ready(function () {
$(''.myinput'').keydown(function (evt) { onkeydown(evt); });
$(''.myinput:first'').focus();
});
function onkeydown(evt) {
evt.preventDefault();
console.log(evt.which);
if(evt.which == 39) {
$(document.activeElement).next().focus();
}
else if(evt.which == 37) {
$(document.activeElement).prev().focus();
}
}
HTML:
<div id="inputs">
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
Devuelve false
de tu manejador de selección de keydown
:
$(''.myinput'').keydown(function (evt) { onkeydown(evt); return false; });
de acuerdo con su requisito, intente pasar el valor para evitar el incumplimiento. Será algo como lo que se muestra a continuación.
evt.preventDefault ? evt.preventDefault() : evt.returnValue = false;
funcionó para mí por favor, inténtelo ...
nsListControlFrame::KeyPress
en http://mxr.mozilla.org/mozilla-central/source/layout/forms/nsListControlFrame.cpp no parece comprobar si se evitó la acción predeterminada. Archivar un error?