如何使用 Parsley Validate 使用 jQuery Currency formater 验证输入字段? 也许正则表达式?

问题描述

我有一个输入字段,它使用 JavaScript 将数字 enteret 转换为丹麦货币(20000 将显示为 20.000,00 kr。).. 在此输入中,我需要验证(使用 Parsley Validate)以下内容

  1. 输入的只是数字。
  2. 数字在 10000 到 200000 之间。

我曾尝试使用 data-parsley-type="digits" data-parsley-length="[5,6]" 其 offcause 验证该数字不低于 10000,但也会验证 999999,这 offcause并不完美,但如果我无法将限制设置为 200000 就可以了。将输入转换为货币格式被触发,现在输入字段有“。”和“kr”。所以 Parsley 验证返回输入错误

我如何让 Parsley 验证,即“10.000,00 kr”。但在“1k.000.00 kr.”上失败了? .. 也许正则表达式? ..但是如何?

var currencyInput = document.querySelector('input[type="digits"]')
var currency = 'DKK' // https://www.currency-iso.org/dam/downloads/lists/list_one.xml

 // format inital value
onBlur({target:currencyInput})

// bind event listeners
currencyInput.addEventListener('focus',onFocus)
currencyInput.addEventListener('blur',onBlur)


function localStringToNumber( s ){
  return Number(String(s).replace(/[^0-9.-]+/g,""))
}

function onFocus(e){
  var value = e.target.value;
  e.target.value = value ? localStringToNumber(value) : ''
}

function onBlur(e){
  var value = e.target.value

  var options = {
      maximumFractionDigits : 2,currency              : currency,style                 : "currency",currencydisplay       : "symbol"
  }
  
  e.target.value = value 
    ? localStringToNumber(value).toLocaleString(undefined,options)
    : ''
}



$(function () {
  $('#SendNewFixedEmployeeForm').parsley().on('field:validated',function() {
    var ok = $('.parsley-error').length === 0;
    $('.bs-callout-info').toggleClass('hidden',!ok);
    $('.bs-callout-warning').toggleClass('hidden',ok);
  })
  .on('form:submit',function() {
    return true;
  });
});
<link href="http://parsleyjs.org/src/parsley.css" rel="stylesheet"/>

<form id="SendForm" action="#" method="post" class="demo-form" data-parsley-validate="" data-parsley-excluded="input[type=button],input[type=submit],input[type=reset],input[type=hidden],[disabled],:hidden">
<input type='digits' class="maxLength form-control" width="400" value="0" name="CurrencyField" id="CurrencyField" aria-describedby="basic-addon2" data-parsley-type="digits" data-parsley-length="[5,6]" data-parsley-errors-container="#Sallary-errors" required/>

<button type="submit" form="SendForm">Submit</button>

</form>

<script src="http://parsleyjs.org/dist/parsley.min.js"></script>
<script src="https://cdpn.io/cp/internal/boomboom/pen.js?key=pen.js-4eb31870-42c1-91aa-5c3e-9c5b016d4ea4" crossorigin></script>

解决方法

data-parsley-lengthdata-parsley-min代替data-parsley-max