JS:在文本区域问题中添加文本

时间:2010-07-27 11:12:53

标签: javascript jquery

您好我正在尝试实施针对此问题提出的解决方案: Insert text into textarea with jQuery

但是不要紧张。

在将一些虚拟文本添加到textarea元素中时,此平面函数可以正常工作:

function add_to() {
        $('#ad_textarea').val($('#ad_textarea').val()+'test');
}

但是,当我尝试将此函数连接到变量时,它会断开:

function add_to(word) {
            $('#ad_textarea').val($('#ad_textarea').val()+word);
    }

从这行代码中调用时:

<?php foreach ($words as $word) {
    echo    "<li class='$word[0]'><a href='#' onclick='add_to('$word');'>$word</a></li>";
    } 
    ?>

我查看了输出的代码,看起来很干净:

<li class='a'><a href='#' onclick='add_to('aardvark');'>aardvark</a></li>

我最终试图让他们在文本区打印出来。谁能发现我的滑倒?

TIA

3 个答案:

答案 0 :(得分:5)

如果您确定它不会在字符串本身中有任何内容,则需要转义该值或更改引号,如下所示:

 onclick='add_to("$word");'

但是,最好使用不显眼的脚本并同时消除此问题,如下所示:

<li class='a'><a href='#' class='word'>aardvark</a></li>

然后使用这样的脚本:

$(function() {
  $("a.word").click(function() {
    $('#ad_textarea').val($('#ad_textarea').val()+$(this).text());
  });
});

或者使用.val()函数:

$(function() {
  $("a.word").click(function() {
    var t = $(this).text();
    $('#ad_textarea').val(function(i, v) { return v + t; });
  });
});

答案 1 :(得分:2)

你的“onclick”中有未转义的单引号。使用双引号或逃避它们。或者您甚至可以在外面使用双引号,单引号内。

答案 2 :(得分:0)

更改

"<li class='$word[0]'><a href='#' onclick='add_to('$word');'>$word</a></li>";

"<li class='$word[0]'><a href='#' onclick=\"add_to('$word');\">$word</a></li>";

并检查可能有效

实际上

onclick='add_to('aardvark');'

应该是

onclick="add_to('aardvark');"