使用JQuery将焦点更改为粘贴事件后的下一个输入
Change focus on next input after paste event with JQuery
我有一个带有许多输入框的HTML表单。在我的任何一个输入框上的粘贴事件中,我想将焦点设置在下面的一个上。这是我目前使用的代码:
$("input").bind('paste', function(e) {
var inputs = $(this).closest('form').find(':input');
//alert(e.originalEvent.clipboardData.getData('Text'));
inputs.eq( inputs.index(this)+ 1 ).focus();
});
此代码的结果如下。假设我有输入框"A"answers"B"。我把一个文本粘贴到"a"中;该函数将焦点更改为"B",然后将文本保存到"B"中。没有任何内容粘贴到"A"中。
当然,我希望内容被粘贴到"A",然后焦点切换到"B"。
有没有办法获得后一种行为?
您希望在更改焦点之前触发粘贴事件,因此需要在调用焦点之前完成bind
回调。
你应该做的是推迟你的焦点通话。您可以使用setTimeout
并延迟0毫秒-基本上,在粘贴函数结束后调用。
$("input").bind('paste', function(e) {
var inputs = $(this).closest('form').find(':input');
var self = this;
setTimeout(function(){
inputs.eq( inputs.index(self)+ 1 ).focus();
}, 0)
});
http://jsfiddle.net/6utcnaq3/1/
这里有一行代码。你只需要介绍一些延迟。
$("input").on('paste', function(e) {
var $this = $(this);
setTimeout(function () {
$this
.closest('form')
.find('input')
.eq($this.index() + 1)
.focus();
}, 100);
});
相关文章:
- 是否可以为HTML5输入滑块触发oninput事件
- 使用onkeyup JS事件检查输入的值是否唯一
- 访问代码生成的输入元素上的keyup事件
- 无线电输入更改的jQuery事件未启动
- JS事件未更改输入禁用属性
- 在表单中的输入字段上提交事件
- 是否可以在数字输入框中的小按钮中添加事件侦听器
- 如何获取按钮点击事件输入的当前值
- 在放置目标时,输入并离开自定义事件
- 为什么不是't;输入“;此处触发事件
- 替代输入:基于按钮点击事件的文本更改处理程序
- 检查 jQuery 中的递增-递减事件输入类型编号
- Ng-model绑定触摸事件输入的值失败
- 从onkeyup事件输入触发JS函数
- 用于关键事件输入验证的Javascript正则表达式故障排除帮助
- Jquery在点击事件输入
- 如何检测javascript事件输入的变化
- 更改事件输入字符
- 触发多个事件/输入字段的功能并计算它们
- 组合组件上的onBlur事件(输入+按钮)