2012-03-14 12 views
5

Fondamentalmente ho bisogno di creare una textarea che abbia un carattere limitato, ma avrà una singola parola all'inizio, che non possono cambiare.Come bloccare la prima parola di una textarea?

Deve essere una parte dell'area di testo, ma non voglio che gli utenti possano rimuoverlo o modificarlo.

Stavo pensando di creare una funzione JQuery utilizzando blur() per impedire all'utente di tornare indietro, ma devo anche impedire loro di selezionare quella parola e cancellarla.

UPDATE Ho scritto questo JQuery che sembra funzionare benissimo! Comunque mi piace la soluzione qui sotto in quanto non richiede 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> 

risposta

8

Se si desidera solo la textarea per mostrare un prefisso, è possibile utilizzare un'etichetta, cambiare la posizione, e rientrare il contenuto textarea. L'utente non noterà la differenza.

È possibile vedere come funziona qui: http://jsfiddle.net/FLEA3/.

+0

Sembra fantastico! Userò il tuo metodo. –

3

Che ne dici di mettere questa parola come etichetta accanto alla casella di testo? Potrebbe essere difficile per gli utenti non essere in grado di modificare parte del testo nella casella di testo.

+0

Stavo pensando di inserire un elemento di testo sopra la textarea e quindi di far avanzare il cursore per ottenere lo stesso effetto. C'è un modo per far avanzare il cursore solo per la prima riga? –

1

Non sarebbe meglio se si avverte l'utente che qualsiasi cosa immette nella textarea sarà presentato con un "prefisso" e poi

  • mostrare il prefisso come etichetta prima del textarea
  • aggiungere il prefisso al testo immesso prima di presentare
Problemi correlati