Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Пара простых вопросов от чайника (https://javascript.ru/forum/dom-window/15462-para-prostykh-voprosov-ot-chajjnika.html)

xrsx 28.02.2011 10:17

Пара простых вопросов от чайника
 
:help:
1. Есть два текстовых поля.
<textarea cols="80" style="width:100%;" rows="10" id="message1" name="message" class="postTextFl">first message</textarea>

с id message1 и message2 по аналогии.

2. Есть скрипт добавления сообщения на форум в специально отведенный раздел.

<script type="text/javascript">
function sendmessage(){
 alert('first step');
 $.get('/forum/1-1-1', function(data) { 
 $.post('/forum/1-1-1', { 
 p: '0', 
 a: '7', 
 jkd428: '1', 
 jkd498: '1', 
 message: <?> + <?>, 
 ahtml: '1', 
 frmt: '0', 
 smiles_on: '1', 
 signature_on: '0', 
 subscribe: '0', 
 fid: '1',
 tid: '1',
 ssid: $('input[name="ssid"]', data).val()
 }, function() {
 alert('second step');
 })
 })
}
</script>

событие отрабатывается по кнопке отправить.

Вопрос:
Как записать данные из полей message1 и message2, в переменную message, в JS коде.

Если можно, то короткий пример.:thanks:

Skipp 28.02.2011 10:23

function get_message(){
var i=1, message = new Array();
while(document.getElementById('message'+i)
message.push(document.getElementById('message'+i)); i++;
return message;
}

xrsx 28.02.2011 10:27

Цитата:

Сообщение от Skipp (Сообщение 94305)
function get_message(){
var i=1, message = new Array();
while(document.getElementById('message'+i)
message.push(document.getElementById('message'+i)); i++;
return message;
}

Спасибо, сейчас попробую.:thanks:

Skipp 28.02.2011 10:36

если просто вставить, то у вас ничего не выйдет, так как эта функция просто возвращает массив объектов.

xrsx 28.02.2011 10:40

я так понимаю именно строка
message.push(document.getElementById('message'+i));

добавляет сообщения в массив, а строка
while(document.getElementById('message'+i)

получает текст.

но при попытке вывести получаемый текст через alert, у меня выдает..
Цитата:

Object HTML TEXTAreaElement
, а не текст сообщения..
и как следствие сообщение не добавляется :-?

рони 28.02.2011 10:40

Цитата:

Сообщение от Skipp
while(document.getElementById('message'+i))

Скобка круглая пропущена

xrsx 28.02.2011 10:41

Цитата:

Сообщение от Skipp (Сообщение 94309)
если просто вставить, то у вас ничего не выйдет, так как эта функция просто возвращает массив объектов.

Это я уже понял.
Подскажите, как правильно выполнить? :(

xrsx 28.02.2011 10:44

кстати, не увидел условия по которому прекращается выполнение цикла :-?

рони 28.02.2011 10:55

Вариант ....на всякий случай )))
function get_message() {
    var i = 1,message = '';
    while (document.getElementById('message' + i)) {
        message+=document.getElementById('message' + i).value;
        i++
    };
    return message;
}

Skipp 28.02.2011 10:57

Так правильно и выводит, так ка в массиве объекты
function get_message(){
var i=1, message = new Array();
while(document.getElementById('message'+i))
message.push(document.getElementById('message'+i)); i++;
return message;
}

а так будут значения

function get_message(){
var i=1, message = new Array();
while(document.getElementById('message'+i))
message.push(document.getElementById('message'+i)).value; i++;
return message;
}


Часовой пояс GMT +3, время: 23:58.