当键入某个字符时,使用jQuery将光标移动到另一个字段?

我的网页上有两个文本字段。 用户应该输入两个用连字符(“ – ”)字符分隔的数字。 数字可以是1到10位数。 当用户按下连字键时,我需要光标移动到下一个字段。

我可以使用$('#txtField2').focus()轻松移动光标。 但是,我仍然遇到连字符仍然在第一个文本字段中的问题。 如何轻松地抑制连字符出现在第一个文本字段中?

HTML

 

JavaScript的

 $('.num:first').keydown(function (event) { // check for hyphen if (event.which === 189) { event.preventDefault(); $(this).next('.num').focus(); } }); 

现场演示

假设一个简化的html:

 

以下应该起作用,或作为一个例子:

 $('#numOne').keypress( function(e){ if (e.which == 45) { $(this).next('input:text').focus(); return false; // prevents the '-' being entered. } }); 

JS小提琴

顺便说一句,我使用$(this).next('input:text')而不是基于id的选择器来允许更一般的应用和重用。

参考文献:

  • keypress()
  • next()

我这样做:

 $('#input1').keypress(function(e) { if(e.keyCode == 45) { e.preventDefault(); $('#input2').focus(); } }); 

看这里的实例: http : //jsfiddle.net/wjNP3/2/

你可以“聆听”那个角色,只关注另一个角色并阻止它输入