我有一个针对年龄的文本框:
<input type="text" id="txtAge" name="txtAge" class="text" placeholder="Age (optional)" maxlength="2">
单击提交后,此输入立即变为红色边框。没有回发。我假设IE10认为客户端实际上已经输入了“年龄(可选)”,该值大于2的maxlength
。
反正是否可以解决此问题,而不需要让用户在其浏览器的设置中执行任何操作,并且不删除maxlength
属性?
您可以使用novalidate
和formnovalidate
属性。有关更多信息,请参见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
我遇到了同样的问题。
在这种情况下,您应该将最大长度更改为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);">
这将解决您的问题。
我遇到了同样的问题,在我的情况下,这是一个GUID字段,由于我不需要在屏幕上显示它,所以该字段被隐藏了。所以我有display:none和maxlength = 0。但是,IE正在执行验证,回发失败了,我也不知道为什么。我花了半天的时间才解决,解决方法是设置maxlength = 36。