如何解决如何使用 Parsley Validate 使用 jQuery Currency formater 验证输入字段? 也许正则表达式?
我有一个输入字段,它使用 JavaScript 将数字 enteret 转换为丹麦货币(20000 将显示为 20.000,00 kr。).. 在此输入中,我需要验证(使用 Parsley Validate)以下内容:
- 输入的只是数字。
- 数字在 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-length
和data-parsley-min
代替data-parsley-max
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。