2014-02-08 4 views
-1

hello guys in my code Я создал массив со случайными числами. распечатать этот массив в текстовом поле и точно отображает как это:Как изменить макет печати в textarea с помощью javascript?

5,52,5,4,8,4,3,4,8,6,1,4,58,3,4,8,3,1,8 

теперь я хочу, чтобы убедиться, чтобы изменить печать чисел в текстовом поле. Я хотел бы видеть их в вертикальном, и в частности:

5 
52 
5 
4 
8 
4 
3 
4 
8 
6 
1 
4 
58 
3 
4 
8 
3 
1 
8 

изменение макета должно иметь место, когда пользователь выбирает кнопку радио На самом деле, у меня есть:

radio buttons horizontally 
radio buttons vertically 

Кто знает, просветите меня ?

+0

Вы написали какой-нибудь код, чтобы попытаться выполнить это, или вы просто ожидаете, что мы сделаем вашу работу за вас? –

ответ

0

EDIT: переписан с использованием не-jquery. Позволяет использовать базовый текст в текстовом поле.

JSFiddle:

http://jsfiddle.net/deEP5/

HTML:

<input id="radio1" type="radio" name="hv" value="horizontal" checked/>Horizontal 
<br/><input id="radio2" type="radio" name="hv" value="vertical"/>Veritical 
<br/> 
<textarea id="text">Some text, random stuff. 

Other text. 

</textarea> 

JS:

function toggleNumbers(){ 
    if(this.value == 'horizontal'){ 
     document.getElementById('text').value = document.getElementById('text').value.replace(/(\d)\n?/g,"$1,").replace(/(\d),(\D)/g,"$1 $2").replace(/(\d),$/g,"$1"); 
    } else { 
     document.getElementById('text').value = document.getElementById('text').value.replace(/(\d),?/g,"$1\n");     
    } 
} 

document.getElementById('radio1').addEventListener('click',toggleNumbers); 
document.getElementById('radio2').addEventListener('click',toggleNumbers);  

var arr = [1,2,3,4,5,6,7,8]; 
document.getElementById('text').value = document.getElementById('text').value + arr.join(","); 

CSS

textarea { 
    height:200px; 
    width:300px; 
} 
+0

Я не использую JQuery. Я переписал код kevin: [код] var numbers = document.getElementById ("Textarea"). InnerHTML.split (","); var input = document.getElementsByTagName ("input"); для (var i = 0; i user3287550

+0

Возможно, добавьте обновленный код в EDIT внутри вашего оригинального сообщения. Мы можем работать оттуда. – Miro

+0

Обновлен код для поддержки текста в текстовом поле.Регулярные выражения ищут списки с разделителями-запятыми или лимитированные разделители строк и действуют на них конкретно, игнорируя другой основной текст. – Miro

0

HTML

<textarea id="ta">5,52,5,4,8,4,3,4,8,6,1,4,58,3,4,8,3,1,8</textarea> 
<input type="radio" name="orientation" value="vertical"/> Vertical 
<input type="radio" name="orientation" value="horizontal"/> Horizontal 

Javascript

var numbers = document.getElementById("ta").value.split(","); 
var inputs = document.getElementsByTagName("input"); 
for(var i = 0; i < inputs.length; i++){ 
    inputs[i].onclick=function(){ 
     document.getElementById("ta").value = (this.value == "vertical") ? numbers.join("\n"):numbers.join(","); 
    }    
} 

JS Fiddle:http://jsfiddle.net/88KyJ/1/

Смежные вопросы