我有一个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)中设置正确的valut但是在页面加载时它的值再次设置为默认值。 如果还有其他解决方案,请建议。
txtRemark.Attributes.Add("onKeyUp", "textCounter(this," + txtRemarksRem.ClientID + ", '2000')");
txtRemark.Attributes.Add("onkeydown", "textCounter(this," + txtRemarksRem.ClientID + ", '2000')");
上面的代码似乎工作正常(在keyup或down上设置计数器值。
答案 0 :(得分:0)
如果没有附加事件,则必须传递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;
}