无法在页面加载时调用参数化javascript函数

无法在页面加载时调用参数化javascript函数,javascript,asp.net,Javascript,Asp.net,我有一个javascript函数,如下所示: function textCounter(field, rem, maxlimit) { if (field.value.length > maxlimit) field.value = field.value.substring(0, maxlimit); else rem.value = maxlimit - field.value.length;

我有一个javascript函数,如下所示:

  function textCounter(field, rem, maxlimit) {
        if (field.value.length > maxlimit)
            field.value = field.value.substring(0, maxlimit);
        else
            rem.value = maxlimit - field.value.length;
    }
在这里,我试图根据另一个多行文本框(字段)中字符串的长度设置文本框(rem)中的值。 在我的页面加载中,我尝试调用它,如下所示:

this.Page.ClientScript.RegisterStartupScript(this.GetType(), "testFunction", "textCounter(txtRemark," + txtRemarksRem.ClientID + ", '2000')", true);
但它似乎不起作用。 我做错了什么

我试图解决的问题是,我能够调用多行文本框的onkey up和keydown属性,并在计数器文本框(rem)中设置正确的值,但在页面加载时,其值再次设置为默认值。 如果有其他解决方案,请建议

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

上面的代码似乎工作正常(在keyup或down上设置计数器值)。

如果事件未附加到它,则必须同时传递textbox(rem)和textbox(field)的客户端id

this.Page.ClientScript.RegisterStartupScript(this.GetType(), "testFunction", "textCounter(" + txtRemark.ClientID + "," + txtRemarksRem.ClientID + ", '2000')", true);
然后在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;
    }

我也这么做了。尽管在多行文本框中输入了数据,但在某些活动中,计数器文本框仍将重置为页面加载的最大值。只要我们单击该文本框,就会调用向上键或向下键,计数器值设置为正确值。我想我没有正确理解您的问题。让我重新阅读您的问题是