放置错误,选择2

Error placement, Select2

本文关键字:选择 错误      更新时间:2023-09-26

保存包含一个或多个select2的表单时,select2错误位置有问题。

以下是我所拥有的:我有一些带有一些强制性select2输入的表单,它们可以很好地显示jQuery Validate的错误,但我想要的是html在保存表单时跳到带有错误的select2。目前,提交处理程序可以跳到除选择器之外的任何其他元素。

我最终覆盖了无效的处理程序,并调用了select2:的id

invalidHandler: function(form, validator) {
    var errors = validator.numberOfInvalids();
    if (errors) {
        if($(validator.errorList[0].element).is(":visible"))
        {
            $('html, body').animate({
                scrollTop: $(validator.errorList[0].element).offset().top
            }, 100);
        }
        else
        {
            $('html, body').animate({
                scrollTop: $("#s2id_" + $(validator.errorList[0].element).attr("id")).offset().top
            }, 100);
        }
    }
}

使用相同的jQuery验证器,只需移动错误

$("#your_id").change(function(e) {
   let id_error = `#${$(this).attr('id')}-error`
   if(!$(this).valid()) {
      $(id_error).detach().appendTo($('.select2-container').first())
   }
})