对于一个项目,我需要一个初始文本字段,它使用forname和bornnames的每个第一个字母。所以基本上该字段需要由用户自动输出输入。如果我填写我的名字缩写MGJ,它需要是M.G.J. (在他必须提出的每一封信之后)。
注意; 使用Webform模块Drupal制作的webform,所以我只能使用css或Javascript。
是否有一些简单的选择?
此致 马亭
答案 0 :(得分:2)
http://nosir.github.io/cleave.js/您可以使用此库以简单的方式格式化您的输入。
或者你可以在JS
中这样做
var input = document.querySelector('#initials');
input.addEventListener('focusout', function() {
this.value = this.value.split('').join('.');
})

<input type="text" id="initials" />
&#13;
答案 1 :(得分:2)
您需要做的就是拆分字符串,然后用点加入。
string.split('').join('.');
答案 2 :(得分:0)
Oke我已经找到了我自己的解决方案;我用过:
`$( document ).ready(function() {
if ($(".input")[0]){
$(".input").focusout(function() {
var initials = this.value.replace(/\./g,'');
this.value = initials.split('').join('.');
});
}
});
})( jQuery );`
答案 3 :(得分:0)
最新答案;我需要同样的东西,但对当前的答案不满意。
document.getElementById('initialsOnly').addEventListener('keyup', function(e) {
if (e.code === 'Backspace') {
this.value = this.value.slice(0, -1);
} else {
const newString = this.value.replace(/[\W\d]/g, '').split('').join('.').toUpperCase();
this.value = newString + (newString.length > 0 ? '.' : '');
}
});
<input id="initialsOnly" type="text" />