1

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

我的问题是,在某些情况下,邮政编码允许非法字符,即使我对输入标签的 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 自动填充有关吗?

4

1 回答 1

0

你的$clientProfileField{'PostalnrMax'}变量应该是什么?你真的"ClientprofileFieldOK"在提交之前检查类的值吗?

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

于 2013-08-20T08:25:48.230 回答