コンテンツへスキップ
メニュー
この質問にフラグが付けられました
3010 ビュー

Does anyone know how to automatically convert Japanese full width number ex. [ 2], be automatically converted into half width number  [ 2 ] when inputted in an integer field?

Right now, full width number will be regarded  as  text  and  show  that  the  field  has  an  invalid  input. What I want is to automatically convert the inputted number and proceed with normal saving process.


アバター
破棄
著作者

I was able to figure out by extending FieldInteger of basic_fields. If by any chance this could be made better, I would love to hear your suggestions, if any.

FieldInteger.include({
/**
* @override
* @returns {string} the content of the input
*/
_getValue: function () {
return this.$input.val();
},
/**
* Trim the value input by the user.
*
* @override
* @private
* @param {any} value
* @param {Object} [options]
*/
_setValue: function (value, options) {
value = this._convertToHalfWidth(value.trim());
return this._super(value, options);
},
_convertToHalfWidth: function(str) {
return str.replace(/[!-~]/g, r => String.fromCharCode(r.charCodeAt(0) - 0xFEE0));
},
})

関連投稿 返信 ビュー 活動
1
7月 25
2250
2
7月 25
7738
2
7月 25
4154
2
7月 25
3923
1
7月 25
2956