如何在TextBox达到其最大长度后禁用输入

时间:2017-04-14 07:33:34

标签: c# asp.net

我已将文本框maxlength设置为20,其中我使用验证控件来提供错误消息并且工作正常,但实际上我希望它在用户开始在文本框中输入输入并且当它达到20时显示字符数然后用户不应该键入它。 可以这样做,任何人都可以解释它:

                        

3 个答案:

答案 0 :(得分:1)

您需要使用Javascript:

JS

function tocheck(field, count, limit)
{
if (field.value.length > limit)
   field.value = field.value.substring(0, limit);
else
   count.value = limit - field.value.length;
}

Asp.net

    <asp:TextBox ID="txtMessage" TextMode="MultiLine"  Width="200px" Rows="3" 
runat="server"  onkeyup="tocheck(txtMessage, this.form.remLen, 20);" onkeydown="tocheck(txtMessage, this.form.remLen, 20);" />

在另一个文本框中,您可以查看计数:

<input readonly="readonly" type="text" name="remLen" size="3" maxlength="3" value="160" />

答案 1 :(得分:0)

我尽可能简单地编写此代码。您还需要处理其他一些事件,例如 onPaste 并更有效地编写它。顺便说一句。

我假设:  你有jQuery:

<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>

这些控制:

  <asp:TextBox ID="txtMessage" TextMode="MultiLine" runat="server"></asp:TextBox>
    <asp:Label ID="lblCount" runat="server"></asp:Label>

您只需要一些像这样的JavaScript代码:

<script>
            var max = 20;
            var lblCount = $("[id$='lblCount']");
            var txtMessage = $("[id$='txtMessage']");

            function checkCount(padding) {
                var currentLength = txtMessage.val().length;
                if (currentLength >= 20) {
                    return false;
                } else {
                    lblCount.text(max - currentLength - padding);
                }
                return true;
            }


            lblCount.text(max);
            txtMessage.keypress(function (e) {
                var key = e.keyCode || e.which;
                if (key != 8 && key != 46) {
                    if (!checkCount(1)) {
                        e.preventDefault();
                    };
                };
            });
            txtMessage.keyup(function (e) {
                var key = e.keyCode || e.which;
                if (key != 8 && key != 46) {
                    e.preventDefault();
                    return;
                }
                checkCount(0);
            });
        </script>

在JavaScript代码的最开始部分,我定义了max,lblCount,你必须知道它们的txtMessage。

答案 2 :(得分:0)

VB.NET

product_categories

'25是限制用户输入