6

我在按键和停止传播方面遇到了困难

我不希望我的页面刷新,我已经尝试了我能想到的所有方法,我当前的代码是

 <script>
 $(document).ready(function() {
 var e = jQuery.event( 'keydown', { which: $.ui.keyCode.ENTER } );

 $('#id_number').trigger(e, function(event){
event.preventDefault();
event.stopPropagation();
});

 });
 </script>

关于我在这里做错了什么的任何想法?我认为该事件被正确调用,我正确链接了 jquery 和 jquery ui,并且没有收到控制台错误

更新 它工作正常,现在我得到对象函数 (a,b){return new e.fn.init(a,b,h)} 的属性“事件”不是下面代码的函数错误

 $(document).ready(function() {
 var e = jQuery.event( 'keydown', { which: $.ui.keyCode.ENTER } , function(event){
  event.preventDefault();
  event.stopPropagation();
}); 

 $('#id_number').trigger(e);

 });

更新 #2 - 已修复

我学到的东西

  1. 文档中不需要触发器()(准备好)
  2. 让 $.ui.keyCode 工作很困难(至少对我来说)
  3. 始终查看输入附加了哪些其他功能(onblur、onfocus 等)又名 doh

重写它,工作得很好

 $(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;
 }
}
4

1 回答 1

9

停止默认操作的代码必须转到事件适用的元素。

$('#id_number').keydown(function(event){
  event.preventDefault();
  event.stopPropagation();
});

第二.trigger()个论点是extraParameters

于 2012-10-04T15:32:13.110 回答