2014-09-01 539 views
0

我无法找到解决方案(或者我错过了它),所以我尝试从您那里获得答案。未捕获的类型错误无法读取未定义的属性'长度'

我有以下的html:

<input name="title" type="text" id="title" size="69" maxlength="30" onmouseout="CheckFieldLength(title, 'charcount2', 'remaining2', 30);" onkeydown="CheckFieldLength(title, 'charcount2', 'remaining2', 30);" onkeyup="CheckFieldLength(title, 'charcount2', 'remaining2', 30);"/></td> 

我试图让输入字段的字符长度如下:

<span id="charcount2">0</span> characters entered | <span id="remaining2">140</span> characters remaining 

JS文件在以下做技巧:

function CheckFieldLength(fn,wn,rn,mc) { 
    var len = fn.value.length; 
    if (len > mc) { 
     fn.value = fn.value.substring(0,mc); 
     len = mc; 
    } 
    document.getElementById(wn).innerHTML = len; 
    document.getElementById(rn).innerHTML = mc - len; 
} 

但是,我只是不断收到以下错误:

uncaught typeerror cannot read property 'length' of undefined 

你有什么想法如何解决这个问题?

回答

1

使用该函数是这样

CheckFieldLength(this, 'charcount2', 'remaining2', 30); 
0

使用代替冠军

<input name="title" type="text" id="title" size="69" maxlength="30" 
    onmouseout="CheckFieldLength(this, 'charcount2', 'remaining2', 30);" 
    onkeydown="CheckFieldLength(this, 'charcount2', 'remaining2', 30);" 
    onkeyup="CheckFieldLength(this, 'charcount2', 'remaining2', 30);"/> 

'this'关键字会将当前元素作为对象传递给javascript函数,剩下的部分将会照顾到您所拥有的功能。

+0

谢谢,这只是工作真棒! :) – 2014-09-01 23:43:37

相关问题