不可编辑,可删除文本区域的一部分

Not editable,removable part of a textarea

本文关键字:区域 一部分 文本 删除 编辑      更新时间:2023-09-26

我有一个简单的文本区域,它有一个默认值。我想每次都保持这个值。用户不应删除此值,但他可以添加额外的字符串。

<textarea>This is contstant</textarea>

正如你在上面看到的。它具有默认值。如何保护此值?但是用户可以在默认值后添加一些内容,如下所示。

<textarea>This is contstant and extra things by user</textarea>

那么如何使用默认值进行部分可编辑的文本区域呢?

可以将

事件处理程序附加到每次更改时执行简单验证的<textarea>。 如果它尝试更改为常量被部分销毁的位置,请覆盖字符串值的 X 个字符。

$('#foo').keydown(function () {
    if ($(this).val().indexOf("This is constant.  ") !== 0) {
        var length = "This is constant.  ".length;
        var current = $(this).val();
        var after = current.slice(length);
        $(this).val("This is constant.  " + after);
    }
});

下面是一个关于 JSFiddle 的示例。

我建议为此使用 JQuery,因为<textarea>实际上没有value,或者我认为甚至可以检查text属性。 JQuery只是抽象<textarea>的怪癖。

我会这样走:

  1. 设置textarea样式以删除边框。
  2. 在上面放一个包含常量文本的div
  3. 将两个元素包装在一个div中,以为其提供公共边框。

这样,常量文本将显示为textarea的一部分,但事实并非如此。

提交表单时,将静态文本附加到字段值前面。