如何修改此代码,使它不是.focus()第一个表单对象(如果是readonlydisabled),并跳至下一个表单输入以获取焦点?

当前,如果第一个输入框被禁用,它将返回一个错误,但是如果它也是只读的,我也想跳到下一个输入框,并且如果所有输入都被禁用并且是只读的,那么它应该不关注任何内容。

    <script language="javascript" type="text/javascript">
    // Focus first element
    $.fn.focus_first = function() {
      var elem = $('input:visible', this).get(0);
      var select = $('select:visible', this).get(0);
      if (select && elem) {
        if (select.offsetTop < elem.offsetTop) {
          elem = select;
        }
      }
      var textarea = $('textarea:visible', this).get(0);
      if (textarea && elem) {
        if (textarea.offsetTop < elem.offsetTop) {
          elem = textarea;
        }
      }

      if (elem) {
        elem.focus();
      }
      return this;
    }
    </script>


实际上使用input:enabled:visible可以解决很多问题,但是我仍在尝试找出是否为只读,以跳至下一个。

最佳答案

用 :

$(yourElement).not(":disabled").not(":readonly")

关于javascript - 如何在使用.focus()时跳过只读和禁用输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9150311/

10-13 03:13