我有一个年龄的文本框:
<input type="text" id="txtAge" name="txtAge" class="text" placeholder="Age (optional)" maxlength="2">
单击提交后,此输入立即变为红色边框。没有回发。我假设 IE10 认为客户端实际上输入了大于maxlength
2 的“年龄(可选)”。
有没有办法在不让用户在浏览器设置中做任何事情并且不删除maxlength
属性的情况下解决这个问题?
我有一个年龄的文本框:
<input type="text" id="txtAge" name="txtAge" class="text" placeholder="Age (optional)" maxlength="2">
单击提交后,此输入立即变为红色边框。没有回发。我假设 IE10 认为客户端实际上输入了大于maxlength
2 的“年龄(可选)”。
有没有办法在不让用户在浏览器设置中做任何事情并且不删除maxlength
属性的情况下解决这个问题?
您可以使用novalidate
和formnovalidate
属性。有关更多信息,请参阅此链接。
使用 JavaScript 的 Internet Explorer 10 和 Windows 应用商店应用添加了对 HTML5 表单的新支持,包括类型属性的新状态(在输入元素上)、输入元素的新属性和进度元素。这种支持使开发人员能够以最少的脚本快速轻松地提供用户提示、输入验证和反馈。
来源: http: //msdn.microsoft.com/en-us/library/ie/hh673544 (v=vs.85).aspx
我遇到了同样的问题,在我的情况下,它是一个 GUID 字段,它被隐藏了,因为我不需要将它显示在屏幕上。所以我有 display:none 和 maxlength=0。然而,IE 正在执行验证,回发失败,我不知道为什么。我花了半天时间才弄明白,解决办法是设置maxlength=36。
我遇到了同样的问题。
在这种情况下,您应该将最大长度更改为 10,这样最大长度就不会出现问题,并使用 javascript 设置您想要的文本框的最大长度,如下所示。
function setMaxLength(obj, len) {
return (obj.value.length < len);
}
并像下面这样调用这个函数
<input type="text" id="txtAge" name="txtAge" class="text" placeholder="Age (optional)" maxlength="10" onkeypress="return setMaxLength(this,2);">
这将解决您的问题。