Skip to content

在共用放置错误样式的父元素时,focusin 会相互影响。 #21

@chrisyip

Description

@chrisyip

以这个 pull requests 为例 https://github.com/sofish/validator.js/pull/20。

如果把包裹 contenteditablediv 去掉,就会共用 form 作为错误样式放置的对象,这时候从第一个 div 跳到第二个 div 时,formclass 会被移除。

想到方案是在 focusin 时判断一遍父元素里的待校验项是否都正确:

$form.on('focusin', identifie, function(e) {
  var invalid = false;
  if (isErrorOnParent) {
    var errElem = errorElement($(this), ...);
    errElem.find(idnetifie).each(function(){
      invalid = validate.call(this, ...)
    })
  }
  if (!invalid) {
    removeErrorClass.call(this, $(this), 'error unvalid empty', isErrorOnParent);
  }
})

有没有更优雅、高效的方法?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions