IE10验证错误,文本框上有maxlength和占位符

问题描述 投票:8回答:3

我有一个针对年龄的文本框:

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

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

反正是否可以解决此问题,而不需要让用户在其浏览器的设置中执行任何操作,并且不删除maxlength属性?

validation internet-explorer-10 placeholder maxlength
3个回答
9
投票

您可以使用novalidateformnovalidate属性。有关更多信息,请参见this link

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

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


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);">

这将解决您的问题。


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.