我在我的网站上有一个简单的表格,用户输入个人信息以注册为新用户。
我的问题是,在某些情况下,邮政编码允许非法字符,即使我对输入标记的onkeyup事件进行了JavaScript验证。这种情况不会经常发生,但仍会发生。
在瑞典,标准邮政编码是一个5位数字,我的验证会检查非法字符的输入,然后在我提交验证之前检查长度,然后再提交表格。
示例代码
function check_Postal()
{
document.RegisterForm.Postal.value = document.RegisterForm.Postal.value.replace(/[\^0-9]/g,"");
if (document.RegisterForm.Postal.value.length == $clientProfileField{'PostalnrMax'})
{
document.RegisterForm.Postal.className="ClientprofileFieldOK";
}
}
对于此示例, PostalnrMax
为5
。
您通常在瑞典撰写邮政编码的方式是XYZ AB
。
我的问题是我的一些用户邮政编码以XYZ A
的形式写入数据库。
在最后三次使用中,用户一直在使用Chrome。我试图重新创建问题,但一直没有成功。我假设问题是用户以某种方式输入他们的邮政编码(XYZ AB
)并且我对长度的验证会切断最后一个字符。
所以我的问题是,用户如何能够输入错误的邮政编码?当我尝试它时,它会立即用""
替换空格。它与Chrome自动填充有关吗?
答案 0 :(得分:0)
你的$clientProfileField{'PostalnrMax'}
变量到底是什么?在提交之前,您是否确实将班级的值检查为"ClientprofileFieldOK"
?
如果你说它适用于你的机器,我的猜测只是一些用户绕过javascript(浏览器在代码中的其他地方不兼容,或者根本就没有JS支持)。如果您知道客户使用的浏览器,请尝试在这些浏览器上运行代码。