将文本从textarea复制到另一个textarea

时间:2011-01-15 09:48:39

标签: jquery textarea

我有两个textareas(ta1ta2)。我想要的是ta2来模仿ta1中的文字。这很简单,但我还需要一些其他功能。

ta1有一个按键(jQuery)事件,它检查某些单词并替换它们。例如,如果我在ta1中键入某事,它将被替换为其他。我想要的是存储在ta2中输入的原始文本,而不替换文本。

如果所有用户正在输入字符或按退格键,这很容易。当用户将光标移动到文本中间的某个位置并开始输入时,就会出现问题。或者当用户选择一堆文本并删除它并开始输入时。有谁知道解决这个问题?


编辑:为了更清楚这一点,我正在使用它。我想要类似于Facebook的东西“你觉得什么?”特征。

因此,用户可以键入@something,当他们从动态生成的下拉列表中进行选择时,它将用某些内容替换@something。所以说用户输入“Hello @something你好吗?”然后显示的文字将变成“你好,你好吗?”

然而,我仍然需要保留“Hello @something你好吗?”在某个地方因为我有一个底层的div,它将“某些东西”改为具有背景颜色。显然还需要为“@ firstname secondname”之类的东西工作。希望能把事情搞清楚一点。

1 个答案:

答案 0 :(得分:0)

UPD :此代码动态更新 t1 中的文字,替换以下标签:"[b]sometext[/b]" =&gt; "<b>sometext</b>"并将"[b]sometext[/b]"复制到 t2

<?php
    if (array_key_exists("encode", $_GET) && strlen($_GET["encode"]) > 0)
    {
        $text = $_GET["encode"];
        $s = preg_replace("/\[b\](.*)\[\/b\]/i", "<b>\\1</b>", $text);

        echo $s;

        die;
    } else
    if (array_key_exists("decode", $_GET) && strlen($_GET["decode"]) > 0)
    {
        $text = $_GET["decode"];
        $s = preg_replace("/<b>([^<]{1,})<\/b>/i", "[b]\\1[/b]", $text);

        echo $s;

        die;
    } else
    if ((array_key_exists("decode", $_GET) && strlen($_GET["decode"]) <= 0) || (array_key_exists("encode", $_GET) && strlen($_GET["encode"]) <= 0))
    {
        echo "";

        die;
    }
?>

<html>
 <head>
  <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript">
   $(document).ready(function() {
    $("[name=t1]").keyup(function() {
     $.get("index.php?", {"encode": $("[name=t1]").val()}, function(data) {
      $("[name=t1]").val(data);
     });

     $.get("index.php?", {"decode": $("[name=t1]").val()}, function(data) {
      $("[name=t2]").val(data);
     });
    });
   });
  </script>
 </head>

 <body>
  <textarea name="t1"></textarea><br /><hr /><br />
  <textarea name="t2"></textarea><br /><br />
 </body>
</html>

注意:使用JQ 1.4.2。