表单提交后邮政编码格式错误

时间:2013-08-20 08:11:40

标签: javascript forms perl validation google-chrome

我在我的网站上有一个简单的表格,用户输入个人信息以注册为新用户。

我的问题是,在某些情况下,邮政编码允许非法字符,即使我对输入标记的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";
  }
}
对于此示例,

PostalnrMax5

您通常在瑞典撰写邮政编码的方式是XYZ AB

我的问题是我的一些用户邮政编码以XYZ A的形式写入数据库。 在最后三次使用中,用户一直在使用Chrome。我试图重新创建问题,但一直没有成功。我假设问题是用户以某种方式输入他们的邮政编码(XYZ AB)并且我对长度的验证会切断最后一个字符。

所以我的问题是,用户如何能够输入错误的邮政编码?当我尝试它时,它会立即用""替换空格。它与Chrome自动填充有关吗?

1 个答案:

答案 0 :(得分:0)

你的$clientProfileField{'PostalnrMax'}变量到底是什么?在提交之前,您是否确实将班级的值检查为"ClientprofileFieldOK"

如果你说它适用于你的机器,我的猜测只是一些用户绕过javascript(浏览器在代码中的其他地方不兼容,或者根本就没有JS支持)。如果您知道客户使用的浏览器,请尝试在这些浏览器上运行代码。