<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áginaTextBoxMultiLine.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