Asp.net Safari自动填充错误忽略最大长度

Asp.net Safari自动填充错误忽略最大长度,asp.net,safari,Asp.net,Safari,我有一个地址用户控件,它封装了一个地址。具有您期望的常用地址字段。当使用Safari的用户访问该网站时,我收到了一些错误,因为Safari的自动填充功能似乎完全崩溃了 这是一个几乎实际向服务器发送数据的示例: VictimaAddressPanel$Address$CityName项目$txtCityName 假街123号 VictimaAddressPanel$Address$ZipCodeItem$txtZipCode 假街123号 看来,因为一个外部容器中有单词地址,所以Safari去了哦

我有一个地址用户控件,它封装了一个地址。具有您期望的常用地址字段。当使用Safari的用户访问该网站时,我收到了一些错误,因为Safari的自动填充功能似乎完全崩溃了

这是一个几乎实际向服务器发送数据的示例:

VictimaAddressPanel$Address$CityName项目$txtCityName 假街123号

VictimaAddressPanel$Address$ZipCodeItem$txtZipCode 假街123号


看来,因为一个外部容器中有单词地址,所以Safari去了哦!!!!哦那是街道地址。因此,它在每个地址字段中填充用户的街道地址,包括邮政编码。现在,我还指定了AutoComplete的ASP.NET文本框属性,并将其设置为Disabled,这将告诉浏览器,嘿,dummy,甚至不要尝试填充此字段。Safari忽略了它。最后,雪上加霜的是,Safari还忽略了文本框的maxlength属性。即使你说一个字段的maxlength为2,如果你的自动完成信息中有100个字符,Safari也会很乐意用100个字符填充这个字段。可以想象,这会导致抛出数据库异常,因为字段长度太长。以前有人见过这个吗?有什么解决办法吗

这是一个令人沮丧的问题。可能最简单的方法是简单地更改名称以去掉$Address部分,以防止出现这种情况。否则你有一些选择

选项一-验证您可以将验证设置为限制。比如说

<asp:TextBox ID="Zip" runat="server" MaxLength="5"></asp:TextBox>

<asp:RegularExpressionValidator ID="ZipVerify" runat="server"
  ControlToValidate="Zip"
  ErrorMessage="You may only have five characters in the zipcode."
  ValidationExpression="(\s|){0,5}$">
</asp:RegularExpressionValidator>

找到防止Safari忽略最大长度的方法了吗?
$(document).ready(function () {
    $('form').submit(function () {
        // Verify your fields here
        if ($("Zip").length > 5) {
            //Do something here on error.
        }
    });    
});