博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery的如何捕捉回车键,改变事件标签
阅读量:5279 次
发布时间:2019-06-14

本文共 5524 字,大约阅读时间需要 18 分钟。

我希望有一个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键等效。 也可配置的输入键,在这个演示。看到我对这个问题较旧的答案。 在你的情况,在更换输入键和标签函数,整个页面(设置进入键,在选项标签后)。

 ...

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();  } }});

转载于:https://www.cnblogs.com/lenther2002/p/4731546.html

你可能感兴趣的文章
JAVA 根据经纬度算出附近的正方形的四个角的经纬度
查看>>
对SPI、IIC、IIS、UART、CAN、SDIO、GPIO的解释
查看>>
Thymeleaf模板格式化LocalDatetime时间格式
查看>>
庖丁解“学生信息管理系统”
查看>>
Pyltp使用
查看>>
其他ip无法访问Yii的gii,配置ip就可以
查看>>
js创建对象
查看>>
有状态EJBBean和无状态的EJBBean
查看>>
设计模式的几种原则
查看>>
使用json格式输出
查看>>
border-image属性在chrome中的不同效果
查看>>
我对师生关系的思考
查看>>
php做的一个简易爬虫
查看>>
x的x次幂的值为10,求x的近似值
查看>>
在Windows下用MingW 4.5.2编译FFmpeg
查看>>
TTL、RS232、RS485、串口
查看>>
About Me
查看>>
mianshi
查看>>
sql 优化
查看>>
tf.pad(one_hot_encoding, [[0, 0], [1, 0]], mode='CONSTANT')
查看>>