【发布时间】:2014-07-28 10:54:38
【问题描述】:
我有一个要求,我需要在密码文本框旁边显示一条限制为 15 个字符的消息。当用户输入 15 个字符时,应立即显示一个闪烁的标签以提醒用户。
当用户点击文本框外时我实现了它,但我需要在用户输入第 15 个字符时立即显示消息
在输入文本框本身时,如果达到最大限制,应提示用户。
我的代码:
<asp:TextBox runat="server" MaxLength="15" TextMode="Password" ID="Password"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="Password" ID="lblMaxChar" />
<asp:CustomValidator ID="cvMaxLimit" runat="server" ControlToValidate="Password" ClientValidationFunction="ValidateTextLength" /><br/>
function ValidateTextLength(source, args) {
var length = $get('<%=Password.ClientID %>').value.length;
if (length >= 15) {
var lbl = document.getElementById('<%=lblMaxChar.ClientID %>');
$(lbl).text('Limit is 15 characters');
blink(lbl);
}
}
var stopBlinking = false;
setTimeout(function () {
stopBlinking = true;
}, 8000);
function blink(selector) {
$(selector).fadeOut('slow', function () {
$(this).fadeIn('slow', function () {
if (!stopBlinking){
blink(this);
}
else {
$(this).hide();
}
});
});
}
【问题讨论】:
-
在
keydown或keyup上为input添加一个侦听器,然后调用您的ValidateTextLength函数 -
您是否将
cvMaxLimit关联到您的文本框? -
感谢@RobSchmuecker 的提示,我不太熟悉,但会尝试。
-
@EduardoFernandes,是的,我通过添加 ControlToValidate 属性来做到这一点
标签: c# javascript jquery asp.net