Javascript 如何锁定文本区域的第一个单词?

Javascript 如何锁定文本区域的第一个单词?,javascript,jquery,focus,textarea,Javascript,Jquery,Focus,Textarea,基本上,我需要创建一个文本区域,该区域有字符限制,但在开头只有一个单词,它们不能更改 它需要是textarea的一部分,但我不希望用户能够删除或编辑它 我想我可以使用blur()创建一个JQuery函数来防止用户退格,但我还需要防止他们选择该单词并删除它 更新 我写了这个JQuery,它似乎工作得很好!不过,我喜欢下面的解决方案,因为它不需要Javascript <script type="text/javascript"> var $el = $("textarea#mes

基本上,我需要创建一个文本区域,该区域有字符限制,但在开头只有一个单词,它们不能更改

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

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

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

var$el=$(“文本区域#消息_创建_正文”);
$el.data('oldVal',$el.val());
$el.bind('keydown keyup keypress',函数(){
var header=“header:”;
var$this=$(this);
$this.data('newVal',$this.val());
var newValue=$this.data(“newVal”);
var oldValue=$this.data(“oldVal”);
//检查以确保未卸下收割台
if(!(newValue.substr(0,header.length)==header)){
$(this).val(oldValue);
}否则{
$(this.data('oldVal',$(this.val());
}
});

把这个词作为标签放在文本框旁边怎么样?如果用户无法编辑文本框中的部分文本,这可能会让人感到困惑。

如果您只是提醒用户,无论他在文本区域中输入什么,都将使用“前缀”提交,然后

  • 将前缀显示为文本区域前的标签
  • 在提交之前,将前缀添加到输入的文本中

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


您可以在这里看到它是如何工作的:。

我正在考虑在textarea上放置一些文本元素,然后推进光标以达到相同的效果。有没有办法将光标向前移动到第一行?这看起来很棒!我会用你的方法。