[英]Formating bank account input only for display
我需要設置銀行編號的文本輸入格式,以便數字看起來像這樣:
11 2490 1111 0000 0000 2222 3333
問題是我只想向用戶顯示此格式(帶空格),但是將其發送給沒有它的服務器(11249011110000000022223333)。 我該如何實現?
編輯
這是我使用formatter.js庫( http://firstopinion.github.io/formatter.js/index.html )編寫的:
<script>
$(document).ready(function () {
var formatted = new Formatter(document.getElementById('bank_account-0'), {
'pattern': '{{99}} {{9999}} {{9999}} {{9999}} {{9999}} {{9999}} {{9999}}',
'persistent': false
});
});
</script>
您可以使用bankAccount.value.replace(/ /g, '')
。
代碼示例:
var bankAccount = document.getElementById('bank_account-0'), getNumber = document.getElementById('get_number'); new Formatter(bankAccount, { 'pattern': '{{99}} {{9999}} {{9999}} {{9999}} {{9999}} {{9999}} {{9999}}', 'persistent': false }); getNumber.onclick = function() { var num = bankAccount.value.replace(/ /g, ''); console.log(num); }
.input { width: 240px}
<script src="//firstopinion.github.io/formatter.js/javascripts/formatter.js"></script> <input type="text" class="input" id="bank_account-0" maxlength="26" pattern="\\d*"> <button id="get_number">Get number</button>
您可能會考慮在每次輸入未聚焦或粘貼到以下值時將值更改為:
var a = document.getElementById('yourInputId');
a.onblur = function() { this.value = this.value.replace(/ /g, ''); };
提示:您可以考慮減少服務器端的空格。 這可能是服務器端驗證的一部分。
最后,我決定改用簡單的PHP過濾器:
$element->addFilter('PregReplace', array( 'match' => '/\s/', 'replace' => '' ));
前端上的cleave.js
庫可以很好地滿足我的要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.