jQuery的如何捕捉回车键,改变事件标签

我希望有一个jQuery的解决方案,我必须接近,有什么需要做的?

$(‘html‘).bind(‘keypress‘, function(e)
{
  if(e.keyCode == 13)
  {
   return e.keyCode = 9; //set event key to tab
  }
});

我可以返回false,它可以防止回车键被按下时,我以为我可以在键代码只是改变到9,使其标签,但它似乎并没有工作。我得要接近,这是怎么回事?
本文地址 :CodeGo.net/130140/

------------------------------------------------------------------------------------------------------------------------- 
1. 这里是一个解决方案:

$(‘input‘).live("keypress", function(e) {
   /* ENTER PRESSED*/
   if (e.keyCode == 13) {
    /* FOCUS ELEMENT */
    var inputs = $(this).parents("form").eq(0).find(":input");
    var idx = inputs.index(this);
    if (idx == inputs.length - 1) {
     inputs[0].select()
    } else {
     inputs[idx + 1].focus(); // handles submit buttons
     inputs[idx + 1].select();
    }
    return false;
   }
  });

2. 此作品完美!

 $(‘input‘).keydown( function(e) {
  var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
  if(key == 13) {
   e.preventDefault();
   var inputs = $(this).closest(‘form‘).find(‘:input:visible‘);
   inputs.eq( inputs.index(this)+ 1 ).focus();
  }
 });

3. 一个jQuery插件的数字键盘键作为tab键等效。 也可配置的输入键,在这个演示。看到我对这个问题较旧的答案。 在你的情况,在更换输入键和标签函数,整个页面(设置进入键,在选项标签后)。

<body data-plus-as-tab="true">
 ...
</body>

4. 从Ben的插件这个版本建立处理选择,你可以传递一个选项来allowSubmit。 IE浏览器。 $(“#表”)enterAsTab({‘allowSubmit“:真});这将允许进入到提交表单当提交按钮被处理事件。

  (function( $ ){
   $.fn.enterAsTab = function( options ) {
   var settings = $.extend( {
    ‘allowSubmit‘   : false
   }, options);
   this.find(‘input, select‘).live("keypress", {localSettings: settings}, function(event) {
   if (settings.allowSubmit) {
    var type = $(this).attr("type");
    if (type == "submit") {
     return true;
    }
   }
   if (event.keyCode == 13 ) {
    var inputs = $(this).parents("form").eq(0).find(":input:visible:not(disabled):not([readonly])");
    var idx = inputs.index(this);
    if (idx == inputs.length - 1) {
     idx = -1;
    } else {
     inputs[idx + 1].focus(); // handles submit buttons
    }
    try {
     inputs[idx + 1].select();
    }
    catch(err) {
     // handle objects not offering select
    }
    return false;
   }
   });
   return this;
   };
  })( jQuery );

5. 这是我的解决方案,反馈:)

$(‘input‘).keydown( function (event) { //event==Keyevent
 if(event.which == 13) {
  var inputs = $(this).closest(‘form‘).find(‘:input:visible‘);
  inputs.eq( inputs.index(this)+ 1 ).focus();
  event.preventDefault(); //Disable standard Enterkey action
 }
 // event.preventDefault(); <- Disable all keys action
});

6. 这些解决方案并没有与我的DataGrid工作。我希望他们会。我并不真的需要Tab或Enter键移动到下一个输入 CodeGo.net,列,行或什么的。我只需要输入触发。或者,改变和我的DataGrid更新数据库。所以我加了“输入”类相关的文本输入,这做的伎俩

$(function() {
 if ($.browser.mozilla) {
  $(".enter").keypress(checkForEnter);
 } else {
  $(".enter").keydown(checkForEnter);
 }
});
function checkForEnter(event) {
 if (event.keyCode == 13) {
  $(".enter").blur();
 }
}

7. 我写的代码从接受的答案是一个jQuery插件,我觉得这(还,现在忽略了隐藏,禁用,只读表单

$.fn.enterAsTab = function () {
 $(this).find(‘input‘).live("keypress", function(e) {
 /* ENTER PRESSED*/
 if (e.keyCode == 13) {
  /* FOCUS ELEMENT */
  var inputs = $(this).parents("form").eq(0).find(":input:visible:not(disabled):not([readonly])"),
   idx = inputs.index(this);
  if (idx == inputs.length - 1) {
   inputs[0].select()
  } else {
   inputs[idx + 1].focus(); // handles submit buttons
   inputs[idx + 1].select();
  }
  return false;
 }
 });
 return this;
};

这样我可以做$(‘#表单ID‘)enterAsTab(); ...想我会发布以来,没有人把它贴为$插件,但它们并非完全直观的来写。 
8. 我把最上面的,并添加任何输入工作,表单以外,等也正常循环回到现在开始,如果你到达最后输入的能力。和..在只有1个输入的情况下它blur了那么单一输入触发任何外部blur/处理程序。

$(‘input,select‘).keydown( function(e) {
 var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
 if(key == 13) {
 e.preventDefault();
 var inputs = $(‘#content‘).find(‘:input:visible‘);
   var nextinput = 0;
  if (inputs.index(this) < (inputs.length-1)) nextinput = inputs.index(this)+1;
   if (inputs.length==1) $(this).blur().focus();
 else inputs.eq(nextinput).focus();
  }
});

9. 这里就是我

   $("[tabindex]").addClass("TabOnEnter");
   $(document).on("keypress", ".TabOnEnter", function (e) {
    //Only do something when the user presses enter
    if (e.keyCode == 13) {
     var nextElement = $(‘[tabindex="‘ + (this.tabIndex + 1) + ‘"]‘);
     console.log(this, nextElement);
     if (nextElement.length)
      nextElement.focus()
     else
      $(‘[tabindex="1"]‘).focus();
    }
   });

注重将TabIndex,而不是具体的表单,但整个页面。 注live已经过时了jQuery的,现在你应该知道on 
10.

$(‘input‘).live("keypress", function(e) {
   /* ENTER PRESSED*/
   if (e.keyCode == 13) {
    /* FOCUS ELEMENT */
    var inputs = $(this).parents("form").eq(0).find(":input:visible");
    var idx = inputs.index(this);
    if (idx == inputs.length - 1) {
     inputs[0].select()
    } else {
     inputs[idx + 1].focus(); // handles submit buttons
     inputs[idx + 1].select();
    }
    return false;
   }
  });

可见的输入是水湿 
11. 为什么不能简单的这样吗?

$(document).on(‘keypress‘, ‘input‘, function(e) {
 if(e.keyCode == 13 && e.target.type !== ‘submit‘) {
 e.preventDefault();
 return $(e.target).blur().focus();
 }
});

这样一来,你就不会触发提交,除非你是在“提交”已输入的类型,它把你的权利你离开的地方。这也使得它的动态添加到页面中输入工作。 注:blur()是在前面的人谁可能有什么“的blur”事件侦听器。这是没有必要的过程工作。 
12. 我知道这个问题是年纪比神,但我从来没有见过,这是所有优雅的答案。

doc.on(‘keydown‘, ‘input‘, function(e, ui) {
 if(e.keyCode === 13){
  e.preventDefault();
  $(this).nextAll(‘input:visible‘).eq(0).focus();
 }
});

这似乎在为几行以不可思议的把工作完成。 
13. 这是最后什么工作完美。我jqeasyui,它工作正常

$(document).on(‘keyup‘, ‘input‘, function(e) {
 if(e.keyCode == 13 && e.target.type  !== ‘submit‘) {
 var inputs = $(e.target).parents("form").eq(0).find(":input:visible"),
 idx = inputs.index(e.target);
  if (idx == inputs.length - 1) {
   inputs[0].select()
  } else {
   inputs[idx + 1].focus();
   inputs[idx + 1].select();
  }
 }
});
时间: 2024-10-31 07:34:03

jQuery的如何捕捉回车键,改变事件标签的相关文章

jquery如何实现点击回车键触发事件

jquery如何实现点击回车键触发事件:有时候我们想点击回车的时候能够让代码去干一些事情,这个时候我们就需要判断按下的键是否是回车,下面就简单介绍一下如何实现此功能,核心代码如下: $(function (){ document.onkeydown=function(ev) { var ev =ev||window.event||arguments.callee.caller.arguments[0]; if(ev&&ev.keyCode==13) { //需要的操作代码 } } }) 代

JQuery攻略(四)事件

jQuery事件处理,鼠标的单击,双击,悬停,键盘按键,文本动画..... 此章节有 1.1被点击的按钮查找 1.2事件的自动触发 1.3点击之后禁用按钮 1.4鼠标事件 1.5焦点事件 1.6CSS的操作 1.7元素创建 1.8动画隐藏和展示 1.9效果 1.10键盘输入控制 1.11防止事件冒泡 小结 1.1被点击的按钮查找 一个页面上有很多按钮,对应不同的功能,一个按钮对应一个事件,说到底就是给每个按钮绑定一个事件. <html xmlns="http://www.w3.org/19

div、span绑定内容改变事件

内容改变事件onchange只适用于form表单标签(input.select.textarea) 当需要对div.span标签进行内容改变监听则无法适用,查阅了一些资料发现jquery有针对的方法,代码如下: 1 <meta charset="UTF-8"> 2 <script src="jquery.min.js"></script> 3 <span id="s"> 4 <span id=

jquery中取消和绑定hover事件的正确方式

在网页设计中,我们经常使用jquery去响应鼠标的hover事件,和mouseover和mouseout事件有相同的效果,但是这其中其中如何使用bind去绑定hover方法呢?如何用unbind取消绑定的事件呢?一.如何绑定hover事件先看以下代码,假设我们给a标签绑定一个click和hover事件:$(document).ready(function(){ $('a').bind({ hover: function(e) { //Hover event handler alert("hove

原生js监听input值改变事件

哈哈哈,又来了,今天闲来无事,实验了下原生js监听input value值改变事件,下面就来说道说道: 本来写监听input值便获是用jquery的,之前的随笔写了,就是这个方法,地址:http://www.cnblogs.com/wteng/p/5434403.html $('input').bind('input propertychange', function() { //to do }) 现在用原生js来实现一遍(其实我翻了下jquery的监听事件on的源码,没找到不知道他写哪了),本

jQuery获取动态产生的html内标签或元素

下午分享<MVC编辑状态两个DropDownList联动>http://www.cnblogs.com/insus/p/3426563.html 不久,马上有网友问及三级联动的例子.Insus.NET回复他,会做二级联动,三级应该不难.原理与方法是一样的. 写此篇的目的,还是处理jQuery怎样获取动态产生后的html的标签或是元素.还是先回过头去看篇头指定的链接的文章.一开始时,Insus.NET使用了jQuery的ajax产生了一数据行,并append至 <tbody id=&quo

jQuery $(document).ready()和JavaScript onload事件

对元素的操作和事件的绑定需要等待一个合适的时机,可以看下面的例子: <!DOCTYPE html> <meta charset="utf-8"> <html> <head> <title>1-1</title> <script type="text/javascript"> document.getElementById("panel").onclick = fu

同时绑定onpropertychange 和 oninput 事件,实时检测 input、textarea输入改变事件,支持低版本IE,支持复制粘贴

实时检测 input.textarea输入改变事件,支持低版本IE,支持复制粘贴 检测input.textarea输入改变事件有以下几种: 1.onkeyup/onkeydown 捕获用户键盘输入事件. 缺陷:复制粘贴时无法检测 2.onchenge 缺陷:要满足触发条件:当前对象的属性改变(由键盘或鼠标触发)且对象失去焦点 3.onpropertychange 当前对象属性改变就会触发 缺陷:只支持低版本IE 4.oninput 和onpropertychange类似,当前对象属性改变就会触发

监听元素属性改变事件的方法

一.onchange事件只在键盘或者鼠标操作改变对象属性,且失去焦点时触发,脚本触发无效.(就是说你在输入框中输入完内容,输入完了,然后鼠标点别的地方触发该事件)二.oninput事件oninput 事件在用户输入时触发.不支持JS等赋值改变的元素属性.该事件在 <input> 或 <textarea> 元素的值发生改变时触发.(也就是说,不用输入完,边输入边触发该事件)①但是,这个方法是HTML5中的标准事件,IE9以下的浏览器是不支持oninput事件的.②使用时,还需要oni