0

好的。所以我有这个代码

<input id="suspect" value="" type="text">
<input id="reason" value="" type="text">
<textarea></textarea>
var suspect = $('input#suspect').text();
var reason = $('input#reason').text();
$('textarea').val('' + suspect + ' and ' + reason + '')

然后我在这两个输入中都放了一些东西,然后 textarea 从输入中没有收到任何值。如何解决这个问题?

4

5 回答 5

2

因为当您设置变量时,您尝试从中恢复输入文本的元素内没有文本(顺便说一句,对于您正在寻找的输入.val())。如果您绑定到focus事件:

$('textarea').focus(
    function(){
        var suspect = $('#suspect').val(),
            reason = $('#reason').val();
        $(this).val('' + suspect + ' and ' + reason + '');
    });

JS 小提琴演示

此外,在这种情况下(因为您已将 JavaScript 放在DOM 中的元素之后,尽管您省略了<script></script>标签)您可能不使用$(document).ready()事件处理程序,但我通常建议将 jQuery 包装在这样的地方,只是确保事件在它们被绑定的元素存在于 DOM之后被绑定。

参考:

于 2012-04-22T05:30:47.403 回答
1
  • .text()-- 获取元素内的文本
  • .val()-- 获取元素的

由于文本存储在 中value,因此您应该使用.val()而不是.text().

var suspect = $('input#suspect').val(),
    reason = $('input#reason').val();
$("textarea").val(suspect+" and "+reason);
于 2012-04-22T05:31:57.103 回答
1

如果您想即时更改,请尝试键盘事件

$(window).keyup(function() {
var suspect = $('input#suspect').val();
var reason = $('input#reason').val();
$('textarea').val('' + suspect + ' and ' + reason + '');
});

见这里:http: //jsfiddle.net/TtAVS/

​</p>

于 2012-04-22T05:34:40.560 回答
0

应该用来.val()从输入框中获取值

于 2012-04-22T05:28:25.927 回答
0

您可能想在val()此处使用而不是text(),并且还需要某种事件(例如单击),该事件会导致从输入中提取数据并将其放入 textarea。

还可能值得注意的是,由于 id 是唯一的,

var suspect = $('#suspect').val();
var reason = $('#reason').val();

作为选择器就足够了,而且(我发现)更容易阅读。

于 2012-04-22T05:28:43.017 回答