8

我有一个年龄的文本框:

<input type="text" id="txtAge" name="txtAge" class="text" placeholder="Age (optional)" maxlength="2">

单击提交后,此输入立即变为红色边框。没有回发。我假设 IE10 认为客户端实际上输入了大于maxlength2 的“年龄(可选)”。

有没有办法在不让用户在浏览器设置中做任何事情并且不删除maxlength属性的情况下解决这个问题?

4

3 回答 3

9

您可以使用novalidateformnovalidate属性。有关更多信息,请参阅此链接

使用 JavaScript 的 Internet Explorer 10 和 Windows 应用商店应用添加了对 HTML5 表单的新支持,包括类型属性的新状态(在输入元素上)、输入元素的新属性和进度元素。这种支持使开发人员能够以最少的脚本快速轻松地提供用户提示、输入验证和反馈。

来源: http: //msdn.microsoft.com/en-us/library/ie/hh673544 (v=vs.85).aspx

于 2013-05-28T00:08:56.463 回答
1

我遇到了同样的问题,在我的情况下,它是一个 GUID 字段,它被隐藏了,因为我不需要将它显示在屏幕上。所以我有 display:none 和 maxlength=0。然而,IE 正在执行验证,回发失败,我不知道为什么。我花了半天时间才弄明白,解决办法是设置maxlength=36。

于 2014-12-15T20:09:54.857 回答
1

我遇到了同样的问题。

在这种情况下,您应该将最大长度更改为 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);">

这将解决您的问题。

于 2014-04-18T05:11:38.437 回答