如何锁定textarea的第一个单词?

基本上我需要创建一个字符有限的textarea,但在开头只有一个单词,它们不能改变。

它需要是textarea的一部分,但我不希望用户能够删除它或编辑它。

我以为我可以使用blur()创建一个JQuery函数来阻止用户进行退格,但我还需要阻止他们选择该单词并删除它。

更新我写了这个JQuery似乎工作得很好! 但是我喜欢下面的解决方案,因为它不需要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()); } });  

如果您只想让textarea显示前缀,您可以使用标签,更改位置,并缩进textarea内容。 用户不会注意到差异。

你可以在这里看到它是如何工作的: http : //jsfiddle.net/FLEA3/ 。

把这个单词作为文本框旁边的标签怎么样? 如果用户无法编辑文本框中的部分文本,则可能会造成混淆。

如果你只是提醒用户他在textarea中输入的任何内容都将以“前缀”提交然后再提示,那会不会更好

  • 在textarea之前将前缀显示为标签
  • 在提交之前为输入的文本添加前缀