No pude encontrar la solución para mi problema (o simplemente lo perdí), así que trato de obtener una respuesta de usted.

Tengo el siguiente 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>

Estoy tratando de obtener la longitud de los caracteres del campo de entrada de la siguiente manera:

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

El archivo js es el siguiente para hacer el truco:

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;
}

Pero, sigo recibiendo el siguiente error:

uncaught typeerror cannot read property 'length' of undefined

¿Tienes alguna idea de cómo resolver el problema?

0
Richard Zilahi 2 sep. 2014 a las 03:16

2 respuestas

La mejor respuesta

Usa esa función como esta

CheckFieldLength(this, 'charcount2', 'remaining2', 30);
1
kefy 1 sep. 2014 a las 23:18

¡Use esto en lugar de título !

<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);"/>

La palabra clave 'this' pasará el elemento actual como un objeto a la función de JavaScript y el resto se encargará de la función que tenga.

0
Raja csp 1 sep. 2014 a las 23:23