我有一个javascript函数可以计算2个不同文本框中的字符,并将值放在第三个文本框中。
这个功能如下:
function CountChars() {
var subjectLength = document.getElementById("txtBoxSubject").value.length;
var msgLength = document.getElementById("txtBoxMsg").value.length;
document.getElementById("txtBoxCnt").value = subjectLength + msgLength;
}
我使用' onkeyup'从消息文本框中调用它。它工作正常。
<asp:TextBox ID="txtBoxMsg" runat="server" ClientIDMode="Static"
TextMode="MultiLine" onkeyup="CountChars()"></asp:TextBox>
可以使用下拉列表或用户向其添加文本来更改“主题”文本框。所以使用&#39; onkeyup&#39;不适用于“主题”文本框。我尝试过使用&#39; onchange&#39;并且在计数文本框中没有输入任何内容。
这是主题html:
<asp:TextBox ID="txtBoxSubject" runat="server" ClientIDMode="Static" onchange="CountChars()"></asp:TextBox>
我做错了什么?
如果主题文本框中的文本发生变化,如何调用javascript函数?
感谢。
更新 这是Subject下拉列表以及更改时调用的函数。
<asp:DropDownList ID="ddListSubject" runat="server" ClientIDMode="Static" AutoPostBack="true" onchange="SubjectChanged();">
</asp:DropDownList>
function SubjectChanged() {
var strSubject = document.getElementById("ddListSubject").value;
if (strSubject == "Custom") {
document.getElementById("txtBoxSubject").value = "";
document.getElementById("txtBoxSubject").focus();
}
else {
document.getElementById("txtBoxSubject").value = strSubject;
}
CountChars(); //number appears for a second then disappears
}
答案 0 :(得分:1)
好像你没有用半列终止这个功能。使用类似onkeyup =“CountChars();”
答案 1 :(得分:0)
您的.aspx正在使用MasterPage? Asp.Net对象的名称在呈现的页面中发生变化。尝试使用&lt;%=%Objeto.ClientID&gt;。
function CountChars() {
var subjectLength = document.getElementById("<%=txtBoxSubject.ClientID %>").value.length;
var msgLength = document.getElementById("<%= txtBoxMsg.ClientID %>").value.length;
document.getElementById("<%= txtBoxCnt.ClientID %>").value = subjectLength + msgLength;
}
或者也许使用JQuery。看看下面的代码,按照你的描述工作。
Subject:
<input id="text1" type="text" />
<br />
Msg
<input id="text2" type="text" multiple style="height: 100px" />
<br />
Total: <span id="total">0</span>
<script type="text/javascript">
$(document).ready(function () {
$("input[type=text]").keyup(function () {
var total = 0;
$("input[type=text]").each(function () {
total += $(this).val().length;
});
$("#total").html(total);
});
});
</script>
希望这有助于你
答案 2 :(得分:0)
假的我......我删除了AutoPostBack =&#34; true&#34;来自下拉! 谢谢你的帮助!!