未捕获的类型错误无法读取未定义的属性“长度”

时间:2014-09-01 23:16:23

标签: javascript jquery uncaught-typeerror

我无法找到问题的解决方案(或者我错过了),所以我试着从你那里得到答案。

我有以下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

你知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

使用这样的功能

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

答案 1 :(得分: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);"/>

&#39;这&#39;关键字会将当前元素作为对象传递给javascript函数,其余部分将用于处理您的函数。