如何禁用textarea一行,而不是所有行使用javascript

时间:2010-11-25 20:49:07

标签: javascript textarea

我知道<textarea name="textarea" disabled="disabled">dsds</textarea>可以在textarea中禁用写入,

但如何禁用我要在textarea中禁用的一行?

不是所有行

感谢

2 个答案:

答案 0 :(得分:1)

如果没有JavaScript,那是不可能的,即便如此:

  1. 您需要启用contentEditable
  2. 你需要编写自己的编辑器......
  3. 您需要弄清楚如果有人删除或插入一条线并因此移动禁用线
  4. 会发生什么
  5. 你需要弄清楚当有人点击禁用的线路上方的线路或在禁用线路下方的线路开始处退格时要做什么......
  6. 总结一下,textarea这里的方法是错误的,更好地使用多个input来做你想做的事情,当然你需要让它看起来像是一个textarea并且你仍然需要一些JavaScript来按预期返回工作(?),但是你再没有指定你想用这些东西做什么。

答案 1 :(得分:0)

是的,使用多个输入文本显示为单个文本区域,让我们称之为假文本区域。这样就可以很容易地禁用它。

  • 不要在它们之间留任何边距,也不要有任何边框,都有相同的宽度。
  • 为每一个分配增量ID - 如input-1,input-2等。
  • 如果您想将一些文本预填充到假文本区域中,请计算可以容纳到单个输入中的最大长度,并使用javascript逐行填充(jquery会更好)。

  • 当光标位于输入文本的末尾并按下enter时,将光标移动到下一个文本输入。为每种可能性定义一个函数并调用它。

  • 发布表单时,将输入值附加在一起以获取伪造文本区域的实际值。

我想假冒这样一个textarea的滚动条可能有困难,但一旦实现,应该工作正常。这样的任何现有插件?

<强>更新 - 对于处理光标位置,请参考这些内容。我没有尝试自己,但可能有用 - Jquery Caret positionHow to get cursor position in textarea,您可以应用光标位置获取设置逻辑。不知何故试图获得实际的点击位置并强制光标停留在那里。