2012-03-14 10 views
5

Básicamente necesito crear un área de texto con carácter limitado, pero que tendrá una sola palabra al principio, que no pueden cambiar.Cómo bloquear la primera palabra de un área de texto?

Es necesario que haya una parte del área de texto, pero no quieren que los usuarios sean capaces de eliminar o editar.

Estaba pensando que podría crear una función JQuery usando blur() para evitar que el usuario retroceda, pero también debo evitar que seleccionen esa palabra y la eliminen.

ACTUALIZACIÓN Escribí este JQuery que parece funcionar muy bien! Sin embargo, me gusta la solución a continuación, ya que no requiere Javascript.

<script type="text/javascript"> 
    var $el = $("textarea#message_create_body"); 
    $el.data('oldVal', $el.val()); 

    $el.bind('keydown keyup keypress', function() { 
     var header = "Header: "; 
     var $this = $(this); 
     $this.data('newVal', $this.val()); 
     var newValue = $this.data("newVal"); 
     var oldValue = $this.data("oldVal"); 

     // Check to make sure header not removed 
     if (!(newValue.substr(0, header.length) === header)) { 
      $(this).val(oldValue); 
     } else { 
      $(this).data('oldVal', $(this).val()); 
     } 
    }); 
</script> 

Respuesta

8

Si lo que desea es el área de texto para mostrar un prefijo, se puede utilizar una etiqueta, cambiar la posición, y sangrar el contenido de área de texto. El usuario no notará la diferencia.

Puede ver cómo funciona aquí: http://jsfiddle.net/FLEA3/.

+0

¡Esto se ve genial! Usaré tu método. –

3

¿Qué tal si ponemos esta palabra como una etiqueta al lado del cuadro de texto? Puede ser confuso para los usuarios no poder editar parte del texto en el cuadro de texto.

+0

Estaba pensando en colocar algún elemento de texto sobre el área de texto, y luego avanzar el cursor para lograr el mismo efecto. ¿Hay alguna forma de avanzar el cursor solo para la primera línea? –

1

¿No sería mejor si usted acaba de alertar al usuario de que todo lo que ingresa en el área de texto se presentará con un "prefijo" y luego

  • mostrar el prefijo como una etiqueta antes de que el área de texto
  • añadir el prefijo al texto introducido antes de presentar
Cuestiones relacionadas