我在网上的一些参考文献中找到了一个用于字数统计的脚本语言。脚本就像这样
<script language = "Javascript">
function tbLimit() {
var tbObj = event.srcElement;
if (tbObj.value.length == tbObj.maxLength * 1) return false;
}
function tbCount(visCnt) {
var tbObj = event.srcElement;
if (tbObj.value.length > tbObj.maxLength * 1) tbObj.value = tbObj.value.substring(0, tbObj.maxLength * 1);
if (visCnt) visCnt.innerText = tbObj.maxLength - tbObj.value.length;
}
</script>
我已经在我的内容持有者之后将其插入到我的aspx页面中。并且为了在我的页面中链接和调用此脚本,我将此代码键入我的页面加载
protected void Page_Load(object sender, EventArgs e)
{
if (Session["LoginAs"] != "PoliceStaff")
{
Response.Redirect("Login.aspx");
}
else
{
if (!Page.IsPostBack)
{
LoadGrid();
tbOR.Attributes.Add("onkeypress", "return tbLimit();");
tbOR.Attributes.Add("onkeyup", "return tbCount(" + lblCounts.ClientID + ");");
tbOR.Attributes.Add("maxLength", "500");
}
}
}
我还添加了一个标签,它将像这样运行单词计数
You have <asp:Label ID="lblCounts" runat="server" Text="500"></asp:Label> characters left.
任何人都可以看到阻止它运行的问题吗?
答案 0 :(得分:1)
非常接近,您需要通过在tbCount
参数中添加引号来告诉Javascript ClientID是一个字符串:
tbOR.Attributes.Add("onkeyup", "return tbCount('" + lblCounts.ClientID + "');");
然后在您的Javascript中,使用document.GetElementById
:
function tbCount(visCnt) {
visCntInput = document.getElementById(visCnt);
var tbObj = event.srcElement;
if (tbObj.value.length > tbObj.maxLength * 1) tbObj.value = tbObj.value.substring(0, tbObj.maxLength * 1);
if (visCntInput) visCntInput.innerText = tbObj.maxLength - tbObj.value.length;
}
目前,您假设ClientID
返回对DOM对象的引用,实际上它返回一个客户端ID
,以便您可以找到该对象。