我尝试创建jquery脚本,该脚本将计算多行文本框中的字符数。当我为单身一个人做的时候,一切都很好。但我有很多多行文本框。我可以使我的sript更强大,所以我不必手动设置每个文本框?我是为单个文本框制作的:
这是我的文本框:
<asp:TextBox ID="TextBox585" runat="server" Width="99%" TextMode="MultiLine" ToolTip = "blabla"></asp:TextBox>
<br />
<div id="TextBox585_feedback" style="text-align: right">
附加的脚本:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var text_max = 1000;
function ValidateTextBoxLen(textBox, textBoxFeedBack) {
var text_length = textBox.val().length;
var remaining = text_max - text_length;
if (remaining < 0) {
textBoxFeedBack.html('Will be cut ' + (0 - remaining) + ' characters.');
} else {
textBoxFeedBack.html('Remaining characters: ' + remaining);
}
}
$('#MainContent_TextBox585').keyup(function () { ValidateTextBoxLen($('#MainContent_TextBox585'), $('#TextBox585_feedback')); });
});
</script>
和VB.net代码将最大字符设置为多行文本框:
TextBox585.Attributes.Add("maxlength", "1000")
答案 0 :(得分:0)
只需更改脚本即可查看分配给每个文本框的类规则,因为您当前指的是文本框的ID,每个文本框始终是唯一的。
<asp:TextBox ID="TextBox585" runat="server" {class="validatable_textbox"} Width="99%" TextMode="MultiLine" ToolTip = "blabla"></asp:TextBox>
然后可以将脚本修改为:
$(document).ready(function () {
var text_max = 1000;
function ValidateTextBoxLen(textBox, textBoxFeedBack) {
var text_length = textBox.val().length;
var remaining = text_max - text_length;
if (remaining < 0) {
textBoxFeedBack.html('Will be cut ' + (0 - remaining) + ' characters.');
} else {
textBoxFeedBack.html('Remaining characters: ' + remaining);
}
}
$('#MainContent_TextBox585').keyup(function () { ValidateTextBoxLen($('.validatable_textbox')); });
});
改变在这里:
$('#MainContent_TextBox585').keyup(function () { ValidateTextBoxLen($('.validatable_textbox')); });