2012-05-06 461 views
9

Estoy usando un campo textarea en un formulario que está hecho en html y el procesamiento es hecho por php. Quiero limitar el número de caracteres que el usuario puede ingresar en el área de texto. ¿Hay alguna manera de que esto se pueda hacer porque el campo textarea se almacena en una base de datos mysql y, por lo tanto, tengo que limitar los datos del usuario de acuerdo con el valor varchar del campo.cómo limitar el número de caracteres en un campo de área de texto que procesa php?

¿Algún ayuda?

Respuesta

18

Puede limitar esto configurando el atributo maxlength en la etiqueta textarea como <textarea maxlength="120"></textarea> en HTML y adicionalmente "cortar" cadena de entrada en PHP por la función substr().

+0

gracias a ton! ¡Eso dio una idea de cómo hacerlo! Básicamente, lo que me confundió fue establecer la longitud máxima, ¡lo que acaba de sugerir cómo se puede usar! – user1373168

+0

supuestamente no funciona en IE –

+0

Esto funciona solo en IE10 +, Firefox, Chrome, Safari. Pero no Opera. – Napolux

8

Como se ha mencionado por s.webbandit puede utilizar maxlength, pero tenga en cuenta que esta es una nueva característica introducida en HTML5, como W3 Escuelas article sobre <textarea>, por lo que la solución "a prueba de balas" necesita Javascript. Por lo tanto, maxlength es no compatible con en Internet Explorer hasta la versión 10 y en Opera no funciona en absoluto.

Aquí es un método que utiliza JavaScript para ayudarle a salir:

<script language="javascript" type="text/javascript"> 
    function charLimit(limitField, limitCount, limitNum) { 
    if (limitField.value.length > limitNum) { 
     limitField.value = limitField.value.substring(0, limitNum); 
    } else { 
     limitCount.value = limitNum - limitField.value.length; 
     } 
    } 
</script> 

A continuación, puede utilizar de esta manera (original source):

<textarea name="limitedtextarea" onKeyDown="charLimit(this.form.limitedtextarea,this.form.countdown,100);"> 
    </textarea> 

Esto debe conseguir que ir.

+0

Tiene un error de nomenclatura de funciones en el atributo onKeyDown, "charLimiti" debe ser "charLimit" – thechrishaddad

1

He intentado muchas formas diferentes de limitar el texto en textareas, y lo mejor que he encontrado (del lado del cliente) es con el complemento jQuery.Maxlength.js. ¡Simple rápido y los cubre a todos!

Paso 1. Incluir MaxLength guión complemento

<script language="javascript" src="jquery.maxlength.js"></script> 

Paso 2. Agregar atributo maxlength a

<textarea maxlength="35" 
    rows="5" cols="30" name="address"></textarea> 

Paso 3. Inicializar complemento

<script type="text/javascript"> 
    $(document).ready(function($) { 
      //Set maxlength of all the textarea (call plugin) 
      $().maxlength(); 
    }) 
</script> 

https://github.com/viralpatel/jquery.maxlength

4

Esta es una manera muy fácil de limitar la longitud de un área de texto a través de JavaScript.

campo área de texto:

<input class='textField' type='text' NAME='note1' value='' onkeyup='charLimit(this, 40);'> 

función de JavaScript:

function charLimit(limitField, limitNum) { 
    if (limitField.value.length > limitNum) { 
    limitField.value = limitField.value.substring(0, limitNum);} 
} 

Cuando el usuario escribe últimos 40 caracteres sólo los quita.

0
<script type="text/javascript"> 
     $(document).ready(function(){ 
     var maxChars = $("#sessionNumtext"); 
     var max_length = maxChars.attr('maxlength'); 
     if (max_length > 0) { 
      maxChars.bind('keyup', function(e){ 
       length = new Number(maxChars.val().length); 
       counter = max_length-length; 
       $("#sessionNum_counter").text(counter); 
      }); 
     } 
    }); 
</script> 

<textarea name="sessionNumtext" id="sessionNumtext" maxlength="20" type="text"></textarea> 
kalan karakter sayısı: <span id="sessionNum_counters">20</span> 
+1

También sería mejor dar algunos detalles, explicaciones, etc., no solo el código. Solo un pensamiento :) –

Cuestiones relacionadas