我想自动更正姓名缩写字段,但我的知识有限,因此经过一个小时的反复试验,我所拥有的只是一个小脚本,仅将输入大写。我想要的是这样的:
a 变为 A。(大写并以点结尾)
AbC 变为 A.B.C.(大写并用点分隔)
A1BC_* 变为 A.B.C. (不允许使用其他字符,大写并用点分隔)
我拥有的是这样的:
$(".hoofdletters").keyup(function(e)
{
$(".hoofdletters").val(($(".hoofdletters").val()).toUpperCase());
});
更新
我不想浪费任何人的时间并打开一个新主题,所以我在这里尝试一下。我自己也尝试过自动将句子中的每个单词大写。一切正常,但由于某种原因空间被删除。它与 + ''
有关,如果我删除它,则不再起作用,如果我添加一个空格,我会在每个字母后得到一个空格,如果我这样保留,则不允许使用空格。
有人有什么建议吗?
$('.cap').bind('textchange', function (event, previousText) {
var val = this.value;
var newVal = '';
val = val.split(' ');
for(var c=0; c < val.length; c++) {
newVal += val[c].substring(0,1).toUpperCase() +
val[c].substring(1,val[c].length) + ''; // It has something to do with this line
}
this.value = newVal;
});
最佳答案
$(document).ready(function() {
$(".hoofdletters").focus(function() {
var current = $(".hoofdletters").val();
$(".hoofdletters").keyup(function(e) {
var key = String.fromCharCode(e.keyCode);
console.log(e.keyCode);
if (key >= 'A' && key <= 'Z') {
current += key + ".";
this.value = current;
}
else if (e.keyCode == 8) {
current = $(".hoofdletters").val();
} else {
current = "";
}
});
$(".hoofdletters").blur(function() {
var i = $(".hoofdletters").val();
var last = i[i.length - 1];
if (last != "." && i.length !== 0) {
this.value += ".";
}
});
$('.hoofdletters').keydown(function(e) {
var i = $(".hoofdletters").val();
if (e.keyCode == 8 && i.charAt(i.length - 1) == ".") {
$(".hoofdletters").val(i.slice(0, -1));
current = $(".hoofdletters").val();
}
})
});
});
关于javascript - 输入 : Initials 时进行表单验证/更正,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13180035/