Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.05.2019, 23:22
Интересующийся
Отправить личное сообщение для ProgYoung Посмотреть профиль Найти все сообщения от ProgYoung
 
Регистрация: 08.05.2019
Сообщений: 25

Вывод новых значений к старым в текстовое поле
Как выводить раз за разом новые значения в текстовое поле, при этом, чтобы старые не стирались

function func1(){ 
 for (i=1;i<=5;i++){
  var RANKS = ranks[Math.floor(Math.random()*ranks.length)];
  var SUITS = suits[Math.floor(Math.random()*suits.length)];
  var blabla = RANKS + " " + SUITS;
  document.getElementById("random").value = blabla;
 }
}


У меня стираются старые значения и выводятся новые, а нужно, чтобы они добавлялись

Последний раз редактировалось ProgYoung, 21.05.2019 в 23:39.
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2019, 00:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

ProgYoung,
Сообщение от ProgYoung
value += blabla;
Ответить с цитированием
  #3 (permalink)  
Старый 22.05.2019, 07:28
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

function func1(){ 
	for(var i = 1, message = ""; i <= 5; i++) {
		var RANKS = ranks[Math.floor(Math.random() * ranks.length)];
		var SUITS = suits[Math.floor(Math.random() * suits.length)];
		message += RANKS + " " + SUITS;
	}
	
	document.getElementById("random").value = message;
}
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2019, 15:12
Интересующийся
Отправить личное сообщение для ProgYoung Посмотреть профиль Найти все сообщения от ProgYoung
 
Регистрация: 08.05.2019
Сообщений: 25

Malleys, рони,
Спасибо большое!
Но если я буду в каждое текстовое поле (всего 5) выводить два рандомных значения, то чтобы мне не писать одно и то же для каждого id, я решила создать отдельную функцию, которая будет возвращать готовые рандомные элементы массивом. Правда у меня выводится undefined... Что не так работает?
var ranks = ["двойка","тройка","четверка","пятерка","шестерка", "семерка","восьмерка","девятка","десятка","валет","дама","король","туз"];
var suits = ["пик","червей","треф","бубен"];

function func(){
   while(true){
      try{
         var RANKS = ranks[Math.floor(Math.random()*ranks.length)];
  	 var SUITS = suits[Math.floor(Math.random()*suits.length)];
 	 var blabla = RANKS + " " + SUITS;
  	 return blabla;
      } catch(e) {
        alert("No game!");
      } finally {
        if (confirm("Продолжить?")) break;
        else break;
      }
   }
}

function func1(){
   document.getElementById("random1").value = func();
}
function func2(){
   document.getElementById("random2").value = func();
}
function func3(){
   document.getElementById("random3").value = func();
}
function func4(){
   document.getElementById("random4").value = func();
}
function func5(){
   document.getElementById("random5").value = func();
}

Последний раз редактировалось ProgYoung, 22.05.2019 в 15:39.
Ответить с цитированием
  #5 (permalink)  
Старый 22.05.2019, 15:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

ProgYoung,
а где ranks и suits?
Ответить с цитированием
  #6 (permalink)  
Старый 22.05.2019, 15:34
Интересующийся
Отправить личное сообщение для ProgYoung Посмотреть профиль Найти все сообщения от ProgYoung
 
Регистрация: 08.05.2019
Сообщений: 25

рони,
исправил выше

Последний раз редактировалось ProgYoung, 22.05.2019 в 15:39.
Ответить с цитированием
  #7 (permalink)  
Старый 22.05.2019, 15:41
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Я не понял в коде, что вы хотите... но
Сообщение от ProgYoung
я буду в каждое текстовое поле (всего 5) выводить два случайных значения
можно так...
<textarea id="random1"></textarea>
<textarea id="random2"></textarea>
<textarea id="random3"></textarea>
<textarea id="random4"></textarea>
<textarea id="random5"></textarea>

<script>var ranks = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"];
var suits = "♣♦♥♠";
function func() {
	for(var i = 1, message = ""; i <= 2; i++) {
		var RANKS = ranks[Math.floor(Math.random() * ranks.length)];
		var SUITS = suits[Math.floor(Math.random() * suits.length)];
		message += RANKS + "" + SUITS;
	}
	
	return message;
}

for(var i = 1; i <= 5; i++) {
	document.getElementById("random" + i).value += func();
}

</script>
Ответить с цитированием
  #8 (permalink)  
Старый 22.05.2019, 15:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

ProgYoung,
function func(){
   var blabla = [];
   while(confirm("количество карт:" +blabla.length + " продолжить?")){
     var RANKS = ranks[Math.floor(Math.random()*ranks.length)];
  	 var SUITS = suits[Math.floor(Math.random()*suits.length)];
 	 blabla.push(RANKS + " " + SUITS);
      }
   return blabla;
}
Ответить с цитированием
  #9 (permalink)  
Старый 22.05.2019, 16:04
Интересующийся
Отправить личное сообщение для ProgYoung Посмотреть профиль Найти все сообщения от ProgYoung
 
Регистрация: 08.05.2019
Сообщений: 25

рони, Malleys,
Мне как раз нужно использовать try, catch, finally. При нажатии на кнопку в текстовых полях появляются рандомные значения карт, например, "двойка пики". Но выводит undefined.

<input type="button" value="Кликни!" onclick="func1()">
  <p><input type="text" id="random1" readonly></p>
  <p><input type="text" id="random2" readonly></p>
  <input type="text" id="random3" readonly>
  <p><input type="text" id="random4" readonly></p>
  <input type="text" id="random5" readonly>

<script>

 // это все возможные номиналы
var ranks = ["двойка","тройка","четверка","пятерка","шестерка",
"семерка","восьмерка","девятка","десятка","валет","дама","король","туз"];
var suits = ["пик","червей","треф","бубен"];

function func(){
   while(true){
      try{ 
         var RANKS = ranks[Math.floor(Math.random()*ranks.length)];
  	 var SUITS = suits[Math.floor(Math.random()*suits.length)];
  	 return RANKS + " " + SUITS;
      } catch(e) {
        alert("No game!");
      } finally {
        if (confirm("Продолжить?")) break;
        else break;
      }
   }
}

function func1(){  
   for(var i = 1; i <= 5; i++) {
       document.getElementById("random" + i).value = func();
   }
}
</script>

Последний раз редактировалось ProgYoung, 22.05.2019 в 16:10.
Ответить с цитированием
  #10 (permalink)  
Старый 22.05.2019, 16:15
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от ProgYoung
нужно использовать try, catch, finally
return нужно размещать в finally
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Введое в текстовое поле значение отображается в виде списка чекбоксов rfhnjirf Общие вопросы Javascript 9 17.05.2017 12:21
Вывод текста в текстовое поле textarea, путём кнопок radio rashid86 Элементы интерфейса 0 24.05.2016 04:57
Вывод результата в текстовом поле Remca Общие вопросы Javascript 0 02.05.2016 18:22
вывести значение кнопки в текстовое поле matt_xs Общие вопросы Javascript 10 16.04.2016 14:50
Активировать текстовое поле если стоит галочка (запара с именами) Гробовщик Events/DOM/Window 9 14.06.2013 10:39