繁体   English   中英

如何使用 Parsley Validate 使用 jQuery 货币格式器验证输入字段? (也许是正则表达式?)

[英]How to validate input field with jQuery Currency formater using Parsley Validate? (Maybe RegEx?)

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

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

我尝试使用 data-parsley-type="digits" data-parsley-length="[5,6]" 验证数字不低于 10000,但也将验证 999999,这 offcause 并不完美但是,如果我无法将限制设置为 200000,那就没问题了。最大的问题是当我在输入框中输入时 Parsley 会验证输入,但是当我“走出”输入时,JavaScript 会转换输入到货币格式被触发,现在输入字段有“。” 和“kr”。 所以 Parsley validate 返回输入错误。

我怎样才能让欧芹验证,即“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-length ,使用data-parsley-mindata-parsley-max

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM