ユーザーが複製できるフォームがあるので、一度に複数のフォームを送信できます。これは正常に機能します。しかし、ユーザーがそれを正しい方法で使用していないことに気づきました。たとえば、私はイニシャルを求め、人々は彼らのフロントネームを記入します。PHPはすべてのフィールドをチェックし、必要に応じてそれらを自動修正しますが、これによりJohnがJOHNに変わります
とにかく良い方法は、フィールドを自動修正することです。これは最初のフォームでは機能しますが、複製されたフォームではうまくいきません。特にイニシャルは奇妙に振る舞います。私のjQueryとJavascriptの知識は非常に限られているので、何週間も困惑した後でも、それを解決する方法がわかりません。提案は大歓迎です。
フィドル: http: //jsfiddle.net/QUxyy/15/
JS
// 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;
});