这是我第一次真正用 javascript 编码,我已经走到了死胡同。我需要创建一个函数(遗憾的是不允许使用 RegExp),它允许我的披萨表单验证用户的输入。确保它只有字母(没有数字、没有空格、除了连字符和撇号之外没有特殊字符)。
用户可以使用一个撇号(前后各有一个字母)。并且用户可以使用一个连字符(前后各有一个字母),用户也可以同时使用撇号和连字符,只要用一个字母隔开。一旦用户点击提交按钮到 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()...
感谢您的帮助!