IE10验证错误与文本框上的maxlength和占位符

时间:2013-04-25 20:09:41

标签: validation internet-explorer-10 placeholder maxlength

我有一个Age的文本框:

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

点击提交后,此输入会立即显示为红色。没有回发。我假设IE10认为客户端实际输入的“Age(可选)”大于2的最大长度。

无论如何,如果不让用户在浏览器的设置中执行任何操作并且不删除maxlength属性,是否可以解决此问题?

3 个答案:

答案 0 :(得分:10)

您可以使用novalidateformnovalidate属性。有关详细信息,请参阅this link

  

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

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

答案 1 :(得分: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);">

这将解决您的问题。

答案 2 :(得分:1)

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