jQueryを使用してフォームの入力を自動修正するスクリプトを使用しています。たとえば、誰かがイニシャルとして「abc」と書くと、フィールドは入力を直接 ABC に自動修正します。
これらのスクリプトはうまく機能します。ただし、誰でも複数のフォームに複数の名前を入力できます。ノックアウトを使用してフォームを複製しています。これまでのところは順調ですが、重複したフィールドでは自動修正が機能しなくなりました..
自動修正は次のようになります (小さな部分):
// Lowercase
$(".lowercase").keyup(function(e)
{
$(".lowercase").val(($(".lowercase").val()).toLowerCase());
if (/[a-z]/g.test(this.value))
{
this.value = this.value.replace(/[^a-z ]/g, '');
}
});
// Initials
$(".initials").focus(function() {
var current = $(".initials").val();
$(".initials").keyup(function(e) {
var key = String.fromCharCode(e.keyCode);
if (key >= 'A' && key <= 'Z') {
current += key + ".";
this.value = current;
}
else {
current = "";
}
});
$(".initials").blur(function() {
var i = $(".initials").val();
var last = i[i.length - 1];
if (last != "." && i.length !== 0){
this.value += ".";
}
});
});
// Capitalize
$(".cap").keyup(function(e)
{
function convertToUpper() {
return arguments[0].toUpperCase();
}
val = this.value.toLowerCase().replace(/\b[a-z]/g, convertToUpper);
this.value = val;
});
フィドルはここにあります
アップデート
raghaw のおかげでNumbers が機能するようになりました。しかし、他のフィールドはまだありません。