【问题标题】:Get a value from an input textbox从输入文本框中获取值
【发布时间】:2012-04-22 05:25:13
【问题描述】:
好的。所以我有这个代码
<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 没有从输入中收到任何值。如何解决这个问题?
【问题讨论】:
标签:
javascript
jquery
input
textarea
【解决方案1】:
因为当您设置变量时,您尝试从中恢复输入文本的元素内没有文本(顺便说一下,对于您正在寻找的输入 .val())。如果绑定到focus 事件:
$('textarea').focus(
function(){
var suspect = $('#suspect').val(),
reason = $('#reason').val();
$(this).val('' + suspect + ' and ' + reason + '');
});
JS Fiddle demo.
此外,在这种情况下(因为您已将 JavaScript 置于 DOM 中的元素之后,尽管您省略了 <script></script> 标记)您可能不使用 @987654328 @ 事件处理程序,但我通常建议在其中包装 jQuery,只是为了确保事件被绑定到 元素到它们被绑定的 which 存在于DOM。
参考资料:
【解决方案2】:
-
.text() -- 获取元素内的文本
-
.val() -- 获取元素的值
由于文本存储在value 中,因此您应该使用.val() 而不是.text()。
var suspect = $('input#suspect').val(),
reason = $('input#reason').val();
$("textarea").val(suspect+" and "+reason);
【解决方案3】:
如果您想要即时更改,请尝试键盘事件
$(window).keyup(function() {
var suspect = $('input#suspect').val();
var reason = $('input#reason').val();
$('textarea').val('' + suspect + ' and ' + reason + '');
});
请看这里:http://jsfiddle.net/TtAVS/
【解决方案4】:
您可能想在此处使用val() 而不是text(),并且还需要某种事件(如点击)导致从输入中提取数据并将其放入文本区域。
还可能值得注意的是,由于 id 是唯一的,
var suspect = $('#suspect').val();
var reason = $('#reason').val();
作为选择器就足够了,而且(我发现)更容易阅读。