微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。