I am having a difficult time with keydown and stop propagation
i do not want my page to refresh, i have tried every which way i can think of, my current code is
<script>
$(document).ready(function() {
var e = jQuery.event( 'keydown', { which: $.ui.keyCode.ENTER } );
$('#id_number').trigger(e, function(event){
event.preventDefault();
event.stopPropagation();
});
});
</script>
any idea on what i am doing wrong here? I thought that the event was called correctly, i have jquery and jquery ui linked correctly and receive no console errors
UPDATE well it was working, now im getting Property 'event' of object function (a,b){return new e.fn.init(a,b,h)} is not a function error on the below code
$(document).ready(function() {
var e = jQuery.event( 'keydown', { which: $.ui.keyCode.ENTER } , function(event){
event.preventDefault();
event.stopPropagation();
});
$('#id_number').trigger(e);
});
UPDATE #2 - fixed
things I learned
- trigger() not needed in the document(ready)
- getting $.ui.keyCode to work was difficult (at least for me)
- always see what other functions are attached to the input (onblur, onfocus, ect) aka doh
rewrote it to this, works perfectly fine
$(document).ready(function() {
$('#id_number').keydown(OnKeyDown);
});
function OnKeyDown(e){
var code = (e.keyCode ? e.keyCode : e.which); //to support both methods
if(code == 13) { //the Enter keycode
//my actions
return false;
}
}
event
function (which you must change toEvent
with capital E) takes a 3rd argument ? according to docs it only takes two arguments.. first is event type and second is an object with event properties.. – Nadanadabevent.which
so it always contains the key that was pressed.. see api.jquery.com/event.which – Nadanadab