限制Textarea不接受250个字符

Man*_*ngh 7 .net html javascript c# asp.net

我在C#中有一个textarea,请看下面的代码:

<asp:Label ID="lblQuestions" runat="server" CssClass="addinfo">
                    Question & Comments</asp:Label>
<asp:TextBox ID="txtQuestions" Rows="5" Columns="5" TextMode="MultiLine" runat="server" MaxLength="250"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

现在我希望textarea不应该接受超过250个字符,无论用户做什么COPY&PASTE,通过WRITING和DRAG&DROP等,如果用户尝试复制或拖放超过250个字符,那么应该在textarea中复制前250个字符.我知道TEXTAREA中没有MAXLENGTH属性.如果使用.NET无法使用javascript或Jquery的解决方案.

请帮忙

rah*_*hul 3

您必须为事件连接函数

onpaste、onkeyup 和 onfocus 您想要执行此操作的区域。

对于 asp 文本框,我认为您必须只考虑 OnTextChanged 事件。

对于文本区域

<INPUT id="counterMessage" readOnly size="3" value="250" name="counterMessage">                                                                                                     
<TEXTAREA onpaste="PasteCounter(this.form.txtAreaMessage,this.form.counterMessage,250);"
                                                                                                                            id="txtAreaMessage" onkeyup="textCounter(this.form.txtAreaMessage,this.form.counterMessage,250);"
                                                                                                                            style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; OVERFLOW: hidden; BORDER-LEFT: 0px; WIDTH: 99%; BORDER-BOTTOM: 0px; HEIGHT: 95px; TEXT-ALIGN: justify"
                                                                                                                            onfocus="textCounter(this.form.txtAreaMessage,this.form.counterMessage,250);" name="txtAreaMessage"
                                                                                                                            rows="3" runat="server"></TEXTAREA>


function PasteCounter(field, countfield, maxlimit)
        {
            var len;
            var txt = clipboardData.getData("Text");
            txt = field.value + txt
            len = parseInt(txt.length);
            if ( len >  maxlimit )
            {
                event.returnValue=false;
                txt = txt.substring(0, maxlimit);       
                field.value = txt;                  
                alert("Only " + maxlimit + " characters are allowed");
            }
            countfield.value = maxlimit - txt.length;
        }    
        function textCounter(field, countfield, maxlimit)
        {
            if (field.value.length > maxlimit )
            {      
                field.value = field.value.substring(0, maxlimit );
                alert("Only " + maxlimit + " characters are allowed");
            }
            countfield.value = maxlimit - field.value.length;
        }
Run Code Online (Sandbox Code Playgroud)

计数字段文本框用于显示剩余字符。