これは、JavaScriptで実際にコーディングするのは初めてであり、私は行き詰まりました。ピザフォームでユーザーの入力を検証できる関数(残念ながら正規表現は許可されていません)を作成する必要があります。文字のみを含めるようにします(数字、スペース、ハイフンとアポストロフィ以外の特殊文字は使用しないでください)。
ユーザーは、1つのアポストロフィを使用できます(前後に文字があります)。また、ユーザーは1つのハイフン(前後に文字を含む)を使用できます。ユーザーは、文字で区切られている限り、アポストロフィとハイフンを同時に使用することもできます。そして、ユーザーがcgiへの送信ボタンをクリックすると、私の最終結果はすべて大文字で名前を表示することです。
例;
クライアント名を入力してください:mikeまたはm'ikeまたはm'i-ke
([ピザの注文を送信]をクリックします)
結果:MIKEまたはM'IKEまたはM'I-KE。
これまでのところ、これは私が持っているものです:
function validatefield01(errMessages)
{
// Get the content of fieldOne
var entry1_info = document.pizza.field01.value;
// error condition will show if character count is less than 4 or greater than 15
if ((entry1_info.length <4) && (entry1_info.length <15))
// error message to be displayed
{
errMessages += " <li>Minimum characters for Client Surname is 4 maximum 15\n";
errMessages += " must use characters only, Apostrophe ( ' ) or hyphen (-) is acceptable.</li>\n";
}
return errMessages;
for(var i=0; i<entry1_info.length; i++)
{
ch = entry1_info.length.charAt(i);
if(ch !=' ' && ch !='.') return false;
}
ここで何が起こっているのかをよりよく説明するために。この関数は、メイン関数で呼び出され、エラーが発生した場合にすべてのエラーを表示するウィンドウをポップアップします(ifステートメントで作成されます。これは機能します)。elseステートメントでは、これがあります。
else {
field01=field01.substring(0).toUpperCase();
return true; // No errors - return to browser and submit form
}
} // End of main function
したがって、現在起こっていることは、小文字が入力された場合、フォームはそれを受け入れませんが、文字が大文字で入力された場合、フォームはそれを受け入れ、cgiに名前が表示されます。それを修正する方法がわかりません。ユーザーは小文字で入力でき、受け入れる必要がありますが、cgiでは大文字に変更する必要があります。そのため、.toUpperCase()...があります。
お手伝いありがとう!