禁用编辑输入框的部分

Disable editing part of input box

本文关键字:输入 编辑      更新时间:2023-09-26

我知道我可以使用禁用/锁定输入框的一部分

<input type="text" disabled="disabled"/>

<input type="text" readonly="readonly"/>

但是我想要

<input type="text" value="[[inputbox|edithere]]"/>

其中用户只能编辑edithere

我试过用谷歌搜索这个,但我能找到的唯一相关的东西是如何完全禁用输入框或禁用某些键。

我不知道输入框id,也不知道有多少(通过php onload动态创建),但我知道它们将始终是一个管道和两个]]bookending我想要编辑的值。

编辑

http://jsfiddle.net/7rTMK/

您不能通过仅操纵属性的股票输入来实现这一点。

然而,你可以用css和一些额外的标记来模拟它:

<div class="wrapper">
    <div class="static text">static text</div>
    <input class="text" type="text" />
</div>

将"static text"div放在输入的顶部,并在输入文本中添加左填充。

示例http://jsfiddle.net/MTEec/

这是不可能的。使用标记包装输入,将不可编辑的部分放在输入之前或之后,并将标记设置为与输入类似的样式,并将输入设置为与该样式匹配的样式。

如果您需要表单发送所有数据,请在输入后创建一个隐藏的输入,并在更改主输入的值时使用JavaScript更新其值(连接到静态和输入的文本)。这样,当发送表单时,将使用稍后具有相同名称的隐藏输入。

虽然这不是完全不可能做到的,但这将非常困难,尝试这样做是一种非常糟糕的做法,至少对您的用例来说是这样。

您应该在输入框中无限制地获得用户输入,如果您想添加方括号或类似内容,您可以稍后使用Javascript或您的服务端语言添加它们。

或者,如果你真的想在文本框中显示字符,你可以使用claustrofob的解决方案,并使用CSS。