我有一个年龄文本框:
<input type="text" id="txtAge" name="txtAge" class="text" placeholder="Age (optional)" maxlength="2">
单击提交后,该输入立即以红色镶边显示。没有回发。我假设IE10认为客户端实际上已经输入了大于2的maxlength
的"年龄(可选)"。
有没有办法绕过这个,而不让用户在浏览器的设置中做任何事情,而不删除maxlength
属性?
可以使用novalidate
和formnovalidate
属性。查看此链接获取更多信息
使用JavaScript的Internet Explorer 10和Windows Store应用程序增加了对HTML5 Forms的新支持,包括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