如何防止专注于特定输入

时间:2014-01-14 16:41:36

标签: jquery recursion

现在,我不知道如何做我想做的事情。

假设我有一个表单和一些特殊字段,其值自动计算。那些字段(输入)有一个名为...'calculate'的特殊类。

当用户点击其中一个输入时,我希望焦点转移到下一个有效输入(没有计算类的输入)

我认为这样就够了但不是:

$('input.calculate').bind('focus', function() {
    var inputs = $(this).closest('form').find(':input');
    inputs.eq( inputs.index(this)+ 1 ).focus();
});

当计算类的几个输入彼此相邻时,会发生这种不当行为:即使下一个输入具有计算类,光标也会转到下一个输入。

考虑到它是很正常的,因为这个函数的行为类似于递归函数。

有人有想法做我想做的事吗?

谢谢

1 个答案:

答案 0 :(得分:0)

简单的方法是使用disabled属性来禁用它们。因此用户无法选择它们(专注于它们)。

或者通过jQuery,你可以这样做:

$('.calculate').focus(function () { // note the focus event; not click
  $(this).next('input').focus(); // set focus to next one!
}

这会将焦点设置为没有类.calculate的下一个元素。此事件很有用,因为它会在输入被聚焦而不是单击时触发!