对于一个项目,我需要一个初始文本字段,它使用的每一个名字和名称的第一个字母。所以基本上该字段需要自动格式化用户输入。如果我填写我的首字母MGJ,它需要M. G. J.(在每一个字母后,他必须把点)。注意; Webform是用Webform模块Drupal制作的,所以我只能使用css或JavaScript。有什么简单的选择吗?问候,马丁
qco9c6ql1#
http://nosir.github.io/cleave.js/你可以使用这个库来格式化你的输入。
或者在JS中这样做
var input = document.querySelector('#initials'); input.addEventListener('focusout', function() { this.value = this.value.split('').join('.'); })
个字符
vojdkbi02#
你需要做的就是把字符串分开,然后用一个点连接起来。
string.split('').join('.');
字符串
dm7nw8vv3#
迟来的答案;我需要同样的东西,但不满意目前的答案。
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 ? '.' : ''); } }); document.getElementById('initialsOnly').addEventListener('input', function(e) { e.target.value = e.target.value.toUpperCase(); });
k4ymrczo4#
好吧,我已经找到了自己的解决方案;我用:
`$( document ).ready(function() { if ($(".input")[0]){ $(".input").focusout(function() { var initials = this.value.replace(/\./g,''); this.value = initials.split('').join('.'); }); } }); })( jQuery );`
4条答案
按热度按时间qco9c6ql1#
http://nosir.github.io/cleave.js/你可以使用这个库来格式化你的输入。
或者在JS中这样做
个字符
vojdkbi02#
你需要做的就是把字符串分开,然后用一个点连接起来。
字符串
dm7nw8vv3#
迟来的答案;我需要同样的东西,但不满意目前的答案。
个字符
k4ymrczo4#
好吧,我已经找到了自己的解决方案;我用:
字符串