【问题标题】:How to prevent focusing on specific inputs如何防止专注于特定输入
【发布时间】:2014-01-15 00:43:45
【问题描述】:

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

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

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

我认为这就足够了,但没有:

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

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

这很正常,想想看,因为这个函数的行为就像一个递归函数。

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

谢谢

【问题讨论】:

    标签: jquery recursion


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 你是对的,但 disable 不接受我在那些字段上放置的样式
    • 第二个对我不起作用...如果输入紧随其后,下一个起作用...这里不是这种情况
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 2018-09-30
    • 2020-03-18
    相关资源
    最近更新 更多