Как мне добавить несколько значений в текстовую область в Javascript?

#javascript #function

#javascript #функция

Вопрос:

Я новичок в Javascript и работаю над проблемой, речь идет о создании веб-сайта, который позволяет пользователю вводить ставку на товар вместе с идентификатором ставки. Когда они вводят оба, они нажимают кнопку отправки, и в текстовом поле отображается идентификатор ставки / предложения (вместе с датой и временем).

Это должно позволять отправлять и отображать несколько заявок, но в настоящее время я могу отобразить только одну. Буду признателен за любую помощь относительно того, как я могу получить несколько ставок для отображения. Спасибо

 var bids = new Array();
var bidders = new Array();
var bidTime = new Array();

function writeBid() {
     var historyText = " ";
     for (var i = 0; i < bids.length; i  ) { 
     historyText = bidTime[i]   " "   bids[i]   " "   bidders[i]   "n";
     document.bidForm.bidList.value = historyText;
     document.bidForm.highBid.value = bids[i];
     document.bidForm.bidId.value = " ";
     document.bidForm.bidAmount.value = " ";
     }
}
function addBid() {
     bidders.unshift(document.bidForm.bidId.value);
     bids.unshift(document.bidForm.bidAmount.value);
     var now = new Date();
     var hours = now.getHours();
     var minutes = now.getMinutes();
     var seconds = now.getSeconds();
     var timeText = hours   ":"   minutes   ":"   seconds;
     bidTime.unshift(timeText);
     writeBid();
 }
 function removeBid() {
     bids.shift();
     bidders.shift();
     bidTime.shift();
     writeBid();
 }
 

Комментарии:

1. Если bidList это текстовая область, то используйте ...bidList.value = historyText — то есть используйте = вместо = . (Или, лучше, используйте = для добавления в вашу historyText переменную и устанавливайте только ...bidList.value один раз после цикла.) Почему вы отображаете такие данные в текстовой области? Должно ли оно быть редактируемым?

2. это требовалось в лабораторных указаниях, не знаю почему. и когда я использую =, он снова записывает предыдущую запись вместе с новой записью каждый раз

Ответ №1:

как сказал @nnnnnn, использование = с вашей текстовой переменной работает идеально:

JavaScript

 var bids = [10, 20, 30];
var bidders = ['tim', 'sam', 'john'];
var bidTime = ['10/2/2013','12/5/213','14/1/2023'];

function writeBid() {
  var historyText = " ";
  for (var i = 0; i < bids.length; i  ) { 
    historyText  = bidTime[i]   " "   bids[i]   " "   bidders[i]   "n";
    document.bidForm.highBid.value = bids[i];
    document.bidForm.bidId.value = " ";
    document.bidForm.bidAmount.value = " ";
  }
  document.bidForm.bidList.value = historyText;
}
 

HTML

 <form name="bidForm" id="bidForm">
  <input type="text" name="bidId" id="bidId"/>
  <input type="text" name="bidAmount" id="bidAmount"/>
  <input type="text" name="highBid" id="highBid"/>
  <textarea name="bidList" id="bidList"></textarea>
</form>