当第二个验证器通过时,不显示解析器验证器消息

问题描述

我有一个包含两个验证器的字段:一个是欧芹模式,第二个是自定义欧芹验证器“ if可选”。当自定义验证通过(另一个字段提供了有效值)但模式验证失败(此输入的值无效)时,香菜通过在验证之后将焦点放在该字段上来表明它失败,但未显示错误消息。如果自定义验证失败,并且仅提供一个无效值,则会正确显示该消息。我该如何解决

自定义验证器:

window.Parsley.addValidator("optionalIf",{
  validateString: function(value,requirement) {
    theOtherField = $("[name = " + requirement + "]")
    if (!!value || !!($(theOtherField)).val()) {
      $(theOtherField).parsley().reset()
      return true;
    }
    return false;
  },messages: {
    en: 'You need to provide the answer to either this field or %s field (or both)'
  },priority: 1
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.9.2/parsley.min.js" integrity="sha512-eyHL1atYNycXNXZMDndxrDhNAegH2BDWt1TmkXJPoGf1WLlNYt08CSjkqF5lnCRmdm3IrkHid8s2jOUY4NIZVQ==" crossorigin="anonymous"></script>

<input data-parsley-different-to="input2" 
data-parsley-optional-if="input2" 
data-parsley-pattern="^\d{4}-\d{3}(\d|X|x){1}$" 
data-parsley-validate-if-empty="true" id="input1" name="pissn"
pattern="^\d{4}-\d{3}(\d|X|x){1}$" placeholder="11111111" type="text"
value="" data-parsley-errors-container="#input1_checkBox-errors" 
data-parsley-group="block-1" 
data-parsley-id="18" class="" 
aria-describedby="parsley-id-18">

解决方法

将优先级从1更改为300使其可以正常工作。