No se puede llamar a una función javascript parametrizada en la carga de mi página

Tengo una función javascript de la siguiente manera:

  function textCounter(field, rem, maxlimit) {
        if (field.value.length > maxlimit)
            field.value = field.value.substring(0, maxlimit);
        else
            rem.value = maxlimit - field.value.length;
    }

Aquí estoy tratando de establecer el valor en un cuadro de texto (rem) en función de la longitud de la cadena en otro cuadro de texto (campo) de varias líneas. En la carga de mi página, intento llamarlo como se muestra a continuación:

this.Page.ClientScript.RegisterStartupScript(this.GetType(), "testFunction", "textCounter(txtRemark," + txtRemarksRem.ClientID + ", '2000')", true);

pero no parece funcionar. Qué estoy haciendo mal aquí.

El problema que estoy tratando de resolver es que el atributo onkey up y keydown del cuadro de texto de varias líneas puedo llamar a la función y establecer el valor correcto en el cuadro de texto del contador (rem), pero en la carga de la página, su valor se establece nuevamente en el valor predeterminado. Si hay alguna otra solución, por favor sugiera.

txtRemark.Attributes.Add("onKeyUp", "textCounter(this," + txtRemarksRem.ClientID + ", '2000')");
        txtRemark.Attributes.Add("onkeydown", "textCounter(this," + txtRemarksRem.ClientID + ", '2000')");

El código anterior parece funcionar bien (estableciendo el valor del contador en keyup o down.

preguntado el 31 de julio de 12 a las 11:07

1 Respuestas

Debe pasar la identificación del cliente tanto del cuadro de texto (rem) como del cuadro de texto (campo), si el evento no está adjunto.

this.Page.ClientScript.RegisterStartupScript(this.GetType(), "testFunction", "textCounter(" + txtRemark.ClientID + "," + txtRemarksRem.ClientID + ", '2000')", true);

Y luego, en su función de JS

function textCounter(f, r, maxlimit) {
        //get the refernce of both element in dom by their client id
        var field =  document.getElementById(f);
        var rem = document.getElementById(r);
        //now this code would run correctly
        if (field.value.length > maxlimit)
            field.value = field.value.substring(0, maxlimit);
        else
            rem.value = maxlimit - field.value.length;
    }

Respondido 31 Jul 12, 11:07

Hice lo mismo. Aún así, el cuadro de texto del contador se restablece al valor máximo en la carga de la página en alguna actividad, aunque se ingresaron datos en el cuadro de texto de varias líneas. Tan pronto como hacemos clic allí, parece que se llama la tecla hacia arriba o hacia abajo y el valor del contador está ajustado al valor correcto. - richa khare

Bueno, creo que no entendí bien tu problema. Déjame volver a leer cuál es tu problema: Anand

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.