我正在尝试将文本区域的输入文本打印到控制台。 用户将键入一条消息,然后单击一个按钮,然后文本将被打印到控制台上。
这是我的HTML:
<form action='/send_message' method='POST'>
<textarea name='message' id='message_box'></textarea>
<input name='receiver_id' type='text' id='number' style="display: none" value="{{info[0][0]}}">
<button id='btn' class='btn btn-primary' type='submit'>Message {{info[0][2]}}</button>
</form>
这是JS:
var message = $('textarea#message_box').val();
var button = document.getElementById('btn');
button.addEventListener('click',function(){
console.log(message)
});
问题是无论该区域是空的还是包含文本,我都在控制台中收到一条空消息。 我尝试了val(),text,innerHTML的各种组合,但是我几乎总是得到相同的空输出...
答案 0 :(得分:5)
单击按钮时,您需要获取textarea的值,因此请在事件监听器中分配message
变量。因为我们想每次单击按钮时都获得textarea的值。
var button = document.getElementById('btn');
button.addEventListener('click', function() {
var message = $('textarea#message_box').val();
console.log(message)
});