<asp:TextBox ID="TextBoxMultiLine" MaxLength="1" TextMode="MultiLine" runat="server"></asp:TextBox>Que en html quedaría
<textarea name="ctl00$MainContent$TextBoxMultiLine" rows="2" cols="20" id="MainContent_TextBoxMultiLine"></textarea>Para hacer que funcione podemos usar el siguiente código en jQuery
$(document).ready(function () { $('[id$=_TextBoxMultiLine]').keypress(function (e) { if ($(this).val().length + 1 > 1) e.preventDefault(); }); });El motivo de usar en el selector de jQuery el identificador _TextBoxMultiLine, es por la forma que tiene ASP.NET de asegurarse que un identificador sea único en la página. Si usamos ASP.NET 4.0 podemos hacer uso del modificador ClientIDMode y asignarlo con Static para evitar que el ID cambie. En se caso el script quedaría de la siguiente
<asp:TextBox ID="TextBoxMultiLine" MaxLength="1" TextMode="MultiLine" ClientIDMode="Static" runat="server"></asp:TextBox>
$(document).ready(function () { $('#TextBoxMultiLine').keypress(function (e) { if ($(this).val().length + 1 > 1) e.preventDefault(); }); });Otra posibilidad es no poner usar el atributo ClientIDMode y usar el ClientID de la siguiente manera
$(document).ready(function () { $('#<%= TextBoxMultiLine.ClientID %>').keypress(function (e) { if ($(this).val().length + 1 > 1) e.preventDefault(); }); });Si no queremos usar jQuery, podríamos llamar al un método en el evento keyUp. Para eso añadimos esto en el Page_Load de nuestra página
TextBoxMultiLine.Attributes.Add("onKeyUp", "Count(this, 1)");
function Count(text, long) { var maxlength = new Number(long); if (text.value.length > maxlength) text.value = text.value.substring(0, maxlength); }
Happy coding!
No hay comentarios:
Publicar un comentario