编辑:确保添加''围绕您添加到Javascript函数调用的控件。
我正在使用Asp.net文本框控件并在span标记中设置字符倒计时。当我设置这个作为引用特定控件的jquery时它工作正常。但是,鉴于我将在整个项目中多次使用它,我想将其作为单独的javascript函数进行调整。我需要传递文本框控件(获取当前计数),maxcharacters(允许)和跨度控件(显示剩余的字符)。
以下是我到目前为止所做的工作,除了最后两行之外它是有效的。我得到一个未定义的变量错误,“0x800a138f - JavaScript运行时错误:无法设置未定义或空引用的属性'innerHTML'”。我已经尝试过使用val,value,innertext等。问题似乎是它没有拿起我传递的跨度控件。
HTML
grails.tomcat.jvmArgs = ['-jvm_option_here']
Javascript
<div class="input-group">
<asp:TextBox runat="server" ID="textbox1" CssClass="form-control" placeholder="Class Description" MaxLength="75"
onkeyup="getCount(this,75,'textcharacters');"></asp:TextBox>
<span class="input-group-addon" id="textcharacters"></span>
</div>
任何想法或建议都将不胜感激...... TIA
答案 0 :(得分:0)
我对asp.net不太了解,但这里是您正在尝试完成的完整客户端版本:
<!DOCTYPE html>
<html>
<body>
<textarea id="countdown" oninput="charcalculate('countdown', 'chartext', 75);"></textarea>
<br/>
<span id="chartext">750</span> characters left
</body>
<script>
//Make sure to put this script under the tags, or else, the javascript doesn't know them.
function charcalculate(textarea, chartext, limit) {
// get the textarea DOM object get the length of the value of the text area
var textcount = parseInt(document.getElementById('countdown').value.length);
//if more than the limit, delete the written character (copy and paste sort of bypasses this)
if (textcount > limit) {
document.getElementById('countdown').value = document.getElementById('countdown').value.substring(0, textcount - 1);
return;
}
// get the span tag DOM object's value/HTML and subtract the limit by the length of the textarea
document.getElementById('chartext').innerHTML = limit - textcount;
}
</script>
</html>
&#13;
答案 1 :(得分:0)
请参阅上面的编辑说明
添加了aprostophe来控制被添加到Javascript函数调用
<div class="input-group">
<asp:TextBox runat="server" ID="textbox1" CssClass="form-control" placeholder="Class Description" MaxLength="75"
onkeyup="getCount(this,75,'textcharacters');"></asp:TextBox>
<span class="input-group-addon" id="textcharacters"></span>
</div>