TextAREA se llama campo de texto, también conocido como área de texto, que es un control de entrada de texto de múltiples líneas con barras de desplazamiento, que a menudo se usa en formularios de envío de la página web. A diferencia de un control de texto de cuadro de texto de una sola línea, no puede limitar el número de palabras a través de la propiedad MaxLength, y para este propósito, se debe buscar otros métodos para limitarlas para cumplir con los requisitos preestablecidos.
La práctica habitual es usar el lenguaje #Script para implementar límites de entrada de palabras en los campos de texto TextAREA, lo cual es simple y práctico. Supongamos que tenemos un área de texto TextAREA con ID TXTA1, podemos limitar el número de palabras que se ingresa en su teclado a 10 caracteres (caracteres chinos u otros caracteres pequeños de la esquina):
<script language = "#" type = "text/eCMAScript"> window.onload = function () {document.getElementById ('txta1'). onkeydown = function () {if (this.value.length> = 10) event.returnValue = false; }} </script>Su principio es monitorear el área de texto del número de identificación especificado monitoreando el evento de llave. Se puede imaginar que solo puede limitar la entrada del teclado. Si el usuario pasea el texto en el portapapeles haciendo clic derecho en el mouse, no puede controlar el número de palabras.
A través de la entrada del teclado, solo se pueden ingresar 10 palabras en el área de texto anterior. Sin embargo, ¡nuestro objetivo no se ha logrado! Copie un texto casualmente e intente pegarlo con el botón derecho del mouse para ver qué está pasando.
Puede encontrar otros scripts JS como los mencionados anteriormente en Internet. No importa cuán excelentes sean, sus principios son los mismos. El monitoreo de la entrada del área de texto operando teclas del teclado, como Keydown, KeyUp o KeyPress, no puede evitar que el clic derecho se pegue. Por esta razón, si realmente debemos limitar la cantidad de palabras en TextARea, tenemos que agregar otro bloqueo a la página web: deshabilitar el clic derecho, que sin duda requiere gastos generales adicionales, y también puede ser algo que los fabricantes de la página web pueden no estar dispuestos a hacer. En realidad, hay una manera más fácil de usar la propiedad OnPropertyChange.
OnPropertyChange se puede utilizar para juzgar el valor de un elemento predeterminado. Cuando cambia el valor del elemento, el evento de juicio se activará. Solo se preocupa por el valor del elemento monitoreado y evita la fuente de la entrada, para que podamos lograr el propósito de limitar el número de palabras de una manera relativamente ideal. Pertenece a la categoría JS y puede usarse en representantes de área de caja anidada. Los siguientes son los estilos de código y efecto. Puede probar la entrada como la anterior. Encontrará que realmente logra su propósito: sin importar el método que ingrese, solo puede ingresar 100 caracteres (caracteres chinos u otros símbolos de solución pequeñas):
Código:
<TextAREA OnPropertyChange = "if (value.length> 100) value = value.substr (0,100)" cols = "60" name = "txTa" ROWS = "8"> </textarea>
Por supuesto, para ser más seguro, el programa de script de fondo que procesa los datos del formulario también debe verificar los datos enviados nuevamente. Si el número de palabras excede el número preestablecido, se procesará en consecuencia, para lograr el propósito de limitar verdaderamente el número de palabras. (encima)
Otro método para implementar TextARea para limitar el número de palabras de entrada (incluido el chino, solo se pueden ingresar 10 y se pueden ingresar todos los códigos ASCII)
<script> function check () {var regc = /[^ -~]+ /g; var rege = // d+/g; var str = t1.value; if (regc.test (str)) {t1.value = t1.value.substr (0,10); } if (rege.test (str)) {t1.value = t1.value.substr (0,20); }} </script> <textArea maxLength = "10" id = "t1" onKeyUp = "check ();"> </extAREA>Hay otra forma:
función textCounter (campo, maxLimit) {if (field.value.length> maxLimit) {field.value = field.value.substring (0, maxLimit); } else {document.upbook.remlen.value = maxLimit - field.value.length; }}<TextArea name = Words cols = 19 filas = 5 class = input1 onPropertyChange = "TextCounter (upbook.words, 50)"> TextAREA> Número de palabras restantes: <input name = remlen type = text id = "remlen" estilo = "color de fondo: #d4d0c8; borde: 0; color: rojo" valor = 50 size> 3 mAxlengthing = 3 lectura> de fondo>
función limittextArea (campo) {maxLimit = 200; if (field.value.length> maxLimit) field.value = field.value.substring (0, maxLimit);}<TextARea cols = 50 filas = 10 name = "comentario" id = "commentArea" onkeydown = "limittextArea (this)" onKeyUp = "limittextArea (this)" onKeyPress = "limittextArea (this)"> </extAREA>
title = "El ancho de TextARea debe menos de 300 caracteres". Significa que ingrese el número máximo de bytes en TextAREA.
Por ejemplo:
<TextARea cols = 50 filas = 10 name = "comentario" id = "commentArea" onkeydown = "limittextArea (this)" onKeyUp = "limittextArea (this)" onKeyPress = "limittextArea (this)"> </extAREA>