parsley.js 可选地验证数字输入

parsley.js optionally validate number input

我有一个 phone 号码的输入字段。它是表单上的可选字段,但如果已填充,则需要 10 位数字。所以,要么是空的,要么是 10 位数字。如何使用 parsley.js?

完成此操作

这个问题与我要找的问题类似,但我尝试了各种组合,但都没有用:

enter link description here

这是我的输入:

<input type="text" class="form-control form-control-sm m-input phone-num" autocomplete="off" style="display:none;" id="phone-input" name="phone" placeholder="0" data-parsley-trigger="keyup" data-parsley-validation-threshold="1" data-parsley-debounce="500" data-parsley-type="digits">

这是欧芹初始化(验证对同一表单上的其他字段有效,所以我认为这不是问题所在):

    $('#myForm').parsley({
      trigger: 'keyup',
      classHandler: function(el){
        return el.$element.closest('.form-group');
      },
      errorClass: 'has-danger',
      errorsWrapper: '<div class="form-control-feedback"></div>',
      errorTemplate: '<span></span>'
    });

是否需要自定义验证?如果可以,我该如何实现?

只需向 input 添加 data-parsley-type="digits"data-parsley-minlength="10" data-parsley-maxlength="10" 的属性。

示例:

<input type="text" class="form-control form-control-sm m-input phone-num" autocomplete="off" 
    style="display:none;" id="phone-input" 
    name="phone" placeholder="0" data-parsley-trigger="keyup" data-parsley-validation-threshold="1" 
    data-parsley-debounce="500" 
    data-parsley-type="digits" 
    data-parsley-minlength="10" 
    data-parsley-maxlength="10"/>