javascript - Enter to Tab 脚本没有跳过复选框?

标签 javascript jquery checkbox

我正在尝试将输入转换为选项卡,它与我的表单字段完美配合,但不适用于我的页面上的复选框。有人知道为什么不这样做吗?

输入选项卡代码:

<script type="text/javascript">
function tabE(obj, e) {
  var e = (typeof event != 'undefined') ? window.event : e; // IE : Moz

  var self = $(obj),
    form = self.parents('form:eq(0)'),
    focusable, next;

  if (e.keyCode == 13) {
    focusable = form.find('input,a,select,button,textarea').filter(':visible');
    next = focusable.eq(focusable.index(obj) + 1);
    if (!next.length) {
      next = focusable.first();
    }
    next.focus();
    return false;
  }
}
</script>

邪恶的复选框:

<input class="case" type="checkbox" onkeyup="return tabE(this,event);"/>

编辑:(HTML 代码):

<td> <input class="case" type="checkbox" onkeypress="return tabE(this,event);"/> </td>

jquery:

 html += '<td><input class="case" id="caseNo_'+i+'" type="checkbox"/></td>';

最佳答案

这对我有用。现在更新以表明如果动态创建复选框,它可以继续工作。

function tabE(obj, e) {
  var e = (typeof event != 'undefined') ? window.event : e; // IE : Moz

  var self = $(obj),
      form = self.parents('form:eq(0)'),
      focusable, next;

  if (e.keyCode == 13) {
    focusable = form.find('input,a,select,button,textarea').filter(':visible');
    next = focusable.eq(focusable.index(obj) + 1);
    if (!next.length) {
      next = focusable.first();
    }
    next.focus();
    return false;
  }
}
var lId = 0;
$(function () {
  $('#addNewCheck').on('click', function(e) {
    lId +=1;
    $('<input id="' + lId + '" class="case" type="checkbox" onkeypress="return tabE(this,event);"/>').insertAfter(':checkbox:last');
  });
});
<script src="http://code.jquery.com/jquery-1.11.3.js"></script>


<form action="action_page.php">
    First name:<br>
    <input type="text" name="firstname" value="Mickey" onkeypress="return tabE(this,event);"><br>
    Last name:<br>
    <input type="text" name="lastname" value="Mouse" onkeypress="return tabE(this,event);"><br><br>
    Case:<br>
    <input class="case" type="checkbox" onkeypress="return tabE(this,event);"/>
    <br>
    <input type="submit" value="Submit" onkeypress="return tabE(this,event);">
</form>
<br>
<button id="addNewCheck">Add new  checkbox </button>

关于javascript - Enter to Tab 脚本没有跳过复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34819887/

相关文章:

javascript - 正则表达式允许单词之间使用标点符号和空格

jquery - 检测 chrome 上的自动填充

JQuery DataTables + KnockOut(+ BootStrap)错误?

php - 在 Woocommerce 的条款和条件下方添加自定义结帐字段

javascript - 有没有更准确的鼠标移动?

javascript - Backbone.Model没有方法 'extend'

javascript - 验证电子邮件地址

Angular 2 - 复选框不同步

android - 复选框状态问题

javascript - 滚动问题时左右移动元素