是我在页面上创建的js函数:
<script type="text/javascript">
function maxLength(field, maxChars) {
if (field.value.length >= maxChars) {
event.returnValue = false;
return false;
}
}
</script>
这是我称之为函数的textarea:
<textarea id="txtapproverremarks" cols="20" rows="2" runat="server" style="width: 600px"
onkeypress="javascript:return maxLength(this,'50');"></textarea>
在IE7 / 8/9上工作正常但IE 10&amp; IE 11:
JavaScript runtime error: Function expected
任何人都有任何想法,为什么会这样。
提前致谢。
答案 0 :(得分:1)
评论event.returnValue
语句。我认为不需要它,其余代码应该可以正常运行。
<script type="text/javascript">
function maxLength(field, maxChars) {
//if (field.value.length >= maxChars) {
//event.returnValue = false;
// return false;
//}
//Just return required result
return (field.value.length <= maxChars);
}
</script>
您还需要更改HTML,尤其是javascript函数调用。
<textarea id="txtapproverremarks" cols="20" rows="2"
runat="server" style="width: 600px"
onkeypress="javascript:return maxLength(this,50);"></textarea>
答案 1 :(得分:0)
您应该使用一些框架或库来验证字段。例如jquery with validate plugin:http://jqueryvalidation.org/
如果使用ASP.NET WebForms,则还可以使用验证控件:http://msdn.microsoft.com/en-us/library/debza5t0(v=vs.100).aspx
编辑:
如果由于IE11故障而必须更改此代码,则还必须在您使用的每个页面上更改它。我认为你的做法是错误的。它导致小的可维护性和灵活性。使用大多数开发人员使用的内容是一种很好的做法。因此,如果另一个开发人员加入该项目,则预热时间会减少,并且公共库比自定义解决方案具有更好的支持。
错误本身表明问题不在您的函数内部。解析器无法将maxLentgh表达式识别为上下文中的有效函数。 更改函数的名称,例如maxLength2 我认为你遇到了一些优先于全局函数的内部变量。 (如果你使用一些通用解决方案,这种问题就不会出现了)