Вывод новых значений к старым в текстовое поле
Как выводить раз за разом новые значения в текстовое поле, при этом, чтобы старые не стирались
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,
Цитата:
|
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; } |
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,
а где ranks и suits? |
рони,
исправил выше |
Я не понял в коде, что вы хотите... но
Цитата:
<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> |
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; } |
рони, 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> |
Цитата:
|
Dilettante_Pro,
аааа, спасибо большое! Все работает, как надо) |
Dilettante_Pro, рони, Malleys,
возник еще вопрос... Как теперь мне считать эти данные с текстовых полей в библиотеку, например, чтобы получилось так: var hand = [ { "rank":"семерка", "suit":"пик" }, { "rank":"четверка", "suit":"червей" }, { "rank":"двойка", "suit":"треф" }, { "rank":"семерка", "suit":"пик" }, { "rank":"восьмерка", "suit":"бубен" } ]; Так, как делаю я, не получается: var hand = []; var all1 = String(document.getElementById("random1").value); var all2 = String(document.getElementById("random2").value); var all3 = String(document.getElementById("random3").value); var all4 = String(document.getElementById("random4").value); var all5 = String(document.getElementById("random5").value); var als1 = all1.split(" "); var als2 = all2.split(" "); var als3 = all3.split(" "); var als4 = all4.split(" "); var als5 = all5.split(" "); hand[0].suit=als1[1]; hand[0].rank=als1[0]; hand[1].suit=als2[1]; hand[1].rank=als2[0]; hand[2].suit=als3[1]; hand[2].rank=als3[0]; hand[3].suit=als4[1]; hand[3].rank=als4[0]; hand[4].suit=als5[1]; hand[4].rank=als5[0]; alert(hand); |
ProgYoung,
Проще сразу запоминать при генерации значений |
ProgYoung, может всё-таки использовать циклы и массивы? Вы же не хотите повторении! Например последний ваш код может выводить hand так...
var hand = []; for(var i = 0; i < 5; i++) { var all = String(document.getElementById("random" + (i + 1)).value); var als = all.split(" "); hand[i].suit = als[1]; hand[i].rank = als[0]; } alert(hand); |
Malleys,
не работает почему-то я сделал так: <p><input type="button" value="Кликни!" onclick="func2()"></p> <script type="text/javascript"> function func2(){ var hand = []; for(var i = 0; i < 5; i++) { var all = String(document.getElementById("random" + (i + 1)).value); var als = all.split(" "); hand[i].suit = als[1]; hand[i].rank = als[0]; } document.getElementById('solve').value = hand; } |
Цитата:
Цитата:
Вот исправил и трансформировал ваш код из поста №9... <input type="button" value="Кликни!" onclick="func1();"> <p><input type="text" id="random1" readonly></p> <p><input type="text" id="random2" readonly></p> <p><input type="text" id="random3" readonly></p> <p><input type="text" id="random4" readonly></p> <p><input type="text" id="random5" readonly></p> <script> // это все возможные номиналы var ranks = ["двойка", "тройка", "четверка", "пятерка", "шестерка", "семерка", "восьмерка", "девятка", "десятка", "валет", "дама", "король", "туз" ]; var suits = ["пик", "червей", "треф", "бубен"]; function func() { var RANKS = ranks[Math.floor(Math.random() * ranks.length)]; var SUITS = suits[Math.floor(Math.random() * suits.length)]; return RANKS + " " + SUITS; } function func1() { for (var i = 1; i <= 5; i++) { document.getElementById("random" + i).value = func(); } } </script>То? Цитата:
<input type="button" value="Кликни!" onclick="func1();"> <p><input type="text" id="random1" readonly></p> <p><input type="text" id="random2" readonly></p> <p><input type="text" id="random3" readonly></p> <p><input type="text" id="random4" readonly></p> <p><input type="text" id="random5" readonly></p> <p id="solve"></p> <script> // это все возможные номиналы var ranks = ["двойка", "тройка", "четверка", "пятерка", "шестерка", "семерка", "восьмерка", "девятка", "десятка", "валет", "дама", "король", "туз" ]; var suits = ["пик", "червей", "треф", "бубен"]; function func() { return { rank: ranks[Math.floor(Math.random() * ranks.length)], suit: suits[Math.floor(Math.random() * suits.length)] }; } var hand = []; function func1() { for (var i = 0; i < 5; i++) { var card = func(); hand[i] = card; document.getElementById("random" + (i + 1)).value = card.rank + " " + card.suit; } document.getElementById("solve").textContent = hand.map(function(card) { return card.rank + " " + card.suit; }).join(", "); } </script> |
Malleys,
Т.к. в задании сказано использовать конструкцию try, catch,finally, то пришлось хоть что-то добавить в finally, но сейчас там return, поэтому удалил. |
Сейчас бы разобраться как в библиотеку это все добавить
|
Цитата:
|
Malleys,
спасибо большое! |
Часовой пояс GMT +3, время: 01:07. |